#!/usr/bin/env bash
name='docker'
release='5'
version='29.9.2'
url='https://docker.io'
description='Pack, ship and run any application as a lightweight container'
email='aliriza.keskin@pardus.org.tr'
maintainer='aliriza'
license=('GPLv3')
source=("cli.tar.gz::https://github.com/docker/cli/archive/v$version.tar.gz"
        "moby.tar.gz::https://github.com/moby/moby/archive/refs/tags/docker-v$version.tar.gz"
        'docker.initd'
        'docker.confd')
depends=(make-ca containerd iptables tini)
makedepends=(go)
sha256sums=(
         'e3b1fab5e2ee2d6b63b8ce0e8bbd08d6f54c0537c470332f2c345ab997233409'
         'd7ce182528eb4c182f3884a7a83b7652ffcbc59b21d3d302050564ff949a9689'
         'SKIP'
         'SKIP')
group=(app.containers)
uses=()
arch=('x86_64')

# Thx alpine linux
# https://git.alpinelinux.org/aports/tree/community/docker/APKBUILD

_cli_commit=a82e528901260c8df6073311379eac65f92db204    # https://github.com/docker/cli/releases/tag/v$pkgver
_moby_commit=0367cbeb49b9d98cb0b4f51e95f7b54b4803e76c   # https://github.com/moby/moby/releases/tag/v$pkgver

export AUTO_GOPATH=1
export GITCOMMIT=$_cli_commit		# for cli
export DOCKER_GITCOMMIT=$_moby_commit	# for moby
export DOCKER_BUILDTAGS=$_buildtags
export DISABLE_WARN_OUTSIDE_CONTAINER=1
export EXCLUDE_AUTO_BUILDTAG_JOURNALD=1
unset CC # prevent possible ccache issues

_cli_builddir="$HOME/cli-$version"
_moby_builddir="$HOME/moby-docker-v$version"

unset PREFIX

build () {
    # engine (moby)
    cd $_moby_builddir
    mkdir -p src/github.com/docker/
    ln -sf "$HOME/moby-$version" src/github.com/docker/dockerd
    GO_BUILDTAGS="" GOPATH="$PWD" VERSION="$pkgver" hack/make.sh dynbinary

    # Required for building man-pages
    export GOPATH="$_cli_builddir"
    export GOBIN="$GOPATH/bin"
    export PATH="$GOBIN:$PATH"

    # cli
    cd $_cli_builddir
    mkdir -p "$_cli_builddir"/src/github.com/docker/
    ln -sf "$_cli_builddir" "$_cli_builddir"/src/github.com/docker/cli
    GO_BUILDTAGS="" LDFLAGS="" make VERSION="$pkgver" dynbinary

}

package () {
    install -Dm644 "$_cli_builddir"/contrib/completion/fish/$name.fish \
		"$DESTDIR"/usr/share/fish/vendor_completions.d/$name.fish

	install -Dm644 "$_cli_builddir"/contrib/completion/zsh/_$name \
		"$DESTDIR"/usr/share/zsh/site-functions/_$name

	install -Dm644 "$_cli_builddir"/contrib/completion/bash/$name \
		"$DESTDIR"/usr/share/bash-completion/completions/$name

	# 'build/docker' is a symlink to 'docker-linux-$arch' e.g. 'docker-linux-amd64'
	install -Dm755 "$_cli_builddir"/build/docker \
		"$DESTDIR"/usr/bin/docker

	install -Dm755 -t "$DESTDIR"/usr/bin \
		"$_moby_builddir"/bundles/dynbinary-daemon/dockerd \
		"$_moby_builddir"/bundles/dynbinary-daemon/docker-proxy

  # service files from gentoo
	install -Dm755 docker.initd "$DESTDIR"/etc/init.d/docker
	install -Dm644 docker.confd "$DESTDIR"/etc/conf.d/docker

}

