# Get build version.
# https://github.com/docker/cli/blob/9eb7b52189c4c233f7e7cee0ce8c1bcaf68f3c36/scripts/build/.variables#L2
# VERSION=${VERSION:-$(git describe --match 'v[0-9]*' --dirty='.m' --always --tags | sed 's/^v//' 2>/dev/null || echo "unknown-version" )}
# GITCOMMIT=${GITCOMMIT:-$(git rev-parse --short HEAD 2> /dev/null || true)}
# BUILDTIME=${BUILDTIME:-$(TZ=UTC date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ")}

# case "$VERSION" in
# 	refs/tags/v*) VERSION=${VERSION#refs/tags/v} ;;
# 	refs/tags/*) VERSION=${VERSION#refs/tags/} ;;
# 	refs/heads/*) VERSION=$(echo "${VERSION#refs/heads/}" | sed -r 's#/+#-#g') ;;
# 	refs/pull/*) VERSION=pr-$(echo "$VERSION" | grep -o '[0-9]\+') ;;
# esac

# DOCKER_CE_GO_LDFLAGS="-X \"github.com/moby/moby/v2/dockerversion.GitCommit=${GITCOMMIT}\" -X \"github.com/moby/moby/v2/dockerversion.BuildTime=${BUILDTIME}\" -X \"github.com/moby/moby/v2/dockerversion.Version=${PKGVER%+*}\""
# DOCKER_CLI_GO_LDFLAGS="-X \"github.com/docker/cli/cli/version.GitCommit=${GITCOMMIT}\" -X \"github.com/docker/cli/cli/version.BuildTime=${BUILDTIME}\" -X \"github.com/docker/cli/cli/version.Version=${PKGVER%+*}\""

# # Fedora: Build tini (installed as docker-init).
abinfo "tini: Building ..."
export DISABLE_WARN_OUTSIDE_CONTAINER=1
cmake "$SRCDIR"/../tini ${CMAKE_DEF[@]}
make tini-static

# Fedora: Build engine.
abinfo "Docker Engine: Building ..."
export GOPATH="${PWD}"
export GO111MODULE=off
export DOCKER_BUILDTAGS="seccomp selinux journald"
export BUILDTAGS="${DOCKER_BUILDTAGS}"
export GOBUILDTAGS="${BUILDTAGS}"
export DISABLE_WARN_OUTSIDE_CONTAINER=1
mkdir -pv "$SRCDIR"/src/github.com/moby/moby
ln -vfns "$SRCDIR"/ src/github.com/moby/moby/v2
VERSION=${PKGVER%+*} ./hack/make.sh dynbinary

# Fedora: Build cli.
abinfo "docker-cli: Building ..."
cd "$SRCDIR"/../cli
mkdir -pv src/github.com/docker
ln -vfns "$SRCDIR"/../cli src/github.com/docker/cli
export GOPATH="${PWD}"
export GO111MODULE=off
export BUILDTAGS="pkcs11"
export GOBUILDTAGS="${BUILDTAGS}"
export DISABLE_WARN_OUTSIDE_CONTAINER=1

make VERSION=${PKGVER%+*} dynbinary
make manpages

# Fedora: Install binary.
cd "$SRCDIR"/..
abinfo "Installing Docker executables ..."
mkdir -pv "$PKGDIR"/usr/bin
install -Dvm755 \
    "$SRCDIR"/bundles/dynbinary-daemon/dockerd \
    -t "$PKGDIR"/usr/bin/
install -Dvm755 \
    "$SRCDIR"/../cli/build/docker \
    -t "$PKGDIR"/usr/bin/

abinfo "Installing docker-proxy as private executable ..."
mkdir -pv "$PKGDIR"/usr/libexec/docker
install -Dvm755 \
    "$SRCDIR"/bundles/dynbinary-daemon/docker-proxy \
    "$SRCDIR"/tini-static \
    -t "$PKGDIR"/usr/libexec/docker/

abinfo "Installing docker.socket ..."
install -Dvm644 "$SRCDIR"/contrib/init/systemd/docker.socket \
    "$PKGDIR"/usr/lib/systemd/system/docker.socket
install -Dvm644 "$SRCDIR"/contrib/init/systemd/docker.service \
    "$PKGDIR"/usr/lib/systemd/system/docker.service

abinfo "docker-cli: Installing shell completions ..."
install -Dvm644 "$SRCDIR"/../cli/contrib/completion/bash/docker \
    "$PKGDIR"/usr/share/bash-completion/completions/docker
install -Dvm644 "$SRCDIR"/../cli/contrib/completion/zsh/_docker \
    "$PKGDIR"/usr/share/zsh/site-functions/_docker
install -Dvm644 "$SRCDIR"/../cli/contrib/completion/fish/docker.fish \
    "$PKGDIR"/usr/share/fish/vendor_completions.d/docker.fish

abinfo "docker-cli: Installing man pages ..."
install -Dvm644 "$SRCDIR"/../cli/man/man1/*.1 \
    -t "$PKGDIR"/usr/share/man/man1/
install -Dvm644 "$SRCDIR"/../cli/man/man5/*.5 \
    -t "$PKGDIR"/usr/share/man/man5/
