Files
moby/hack/dockerfile/cli.sh
Paweł Gronowski 5433b88e2d hack/cli.sh: Quiet origin cleanup
Don't show `error: No such remote: 'origin'` error when building for the
first time and the cached git repository doesn't a remote yet.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2023-06-05 17:02:46 +02:00

30 lines
822 B
Bash
Executable File

#!/bin/sh
set -e
version="$1"
repository="$2"
outdir="$3"
DOWNLOAD_URL="https://download.docker.com/linux/static/stable/$(xx-info march)/docker-${version#v}.tgz"
mkdir "$outdir"
if curl --head --silent --fail "${DOWNLOAD_URL}" 1> /dev/null 2>&1; then
curl -Ls "${DOWNLOAD_URL}" | tar -xz docker/docker
mv docker/docker "${outdir}/docker"
else
git init -q .
git remote remove origin 2> /dev/null || true
git remote add origin "${repository}"
git fetch -q --depth 1 origin "${version}" +refs/tags/*:refs/tags/*
git checkout -fq "${version}"
if [ -d ./components/cli ]; then
mv ./components/cli/* ./
CGO_ENABLED=0 xx-go build -o "${outdir}/docker" ./cmd/docker
git reset --hard "${version}"
else
xx-go --wrap && CGO_ENABLED=0 TARGET="${outdir}" ./scripts/build/binary
fi
fi
xx-verify "${outdir}/docker"