#!/bin/bash -e
# Maintainer: Ľubomír 'the-k' Kučera <lubomir.kucera.jr at gmail.com>
# Contributor: Hugo Osvaldo Barrera <hugo@barrera.io>
# Contributor: PastLeo <chgu82837@gmail.com>
# Contributor: koba1t <kobdotsh at gmail dot com>

pkgname=docker-rootless-extras
pkgver=29.7.1
pkgrel=1
pkgdesc="Extras to run docker as non-root."
arch=('any')
url="https://docs.docker.com/engine/security/rootless/"
license=('Apache-2.0')
provides=('docker-rootless' 'docker-rootless-extras' 'docker-rootless-extras-bin')
conflicts=('docker-rootless' 'docker-rootless-extras' 'docker-rootless-extras-bin')
install=$pkgname.install
source=(
  "dockerd-rootless-${pkgver}.sh::https://raw.githubusercontent.com/moby/moby/docker-v${pkgver}/contrib/dockerd-rootless.sh"
  "dockerd-rootless-setuptool-${pkgver}.sh::https://raw.githubusercontent.com/moby/moby/docker-v${pkgver}/contrib/dockerd-rootless-setuptool.sh"
  "docker.socket"
  "99-docker-rootless.conf")

sha256sums=('904c9b9e35f6927c0a5e65afb4d35b6bc9eb1278c878044501281fc728c9be46'
  '1c9f0dc93ebb3d75255254ec760d26a912affba7f329ab8abffe8e25eb0b3f94'
  'd8695293e5d4a814763f13e1d36ed37273040666b4b91363d6c33171df8934c7'
  'd0d790d4c3d887b10b2b155b83a58a44980b9fa638f8c0f1faec0739dc0ef473')

: "${arch[@]}"
: "${conflicts[@]}"
: "${install}"
: "${license[@]}"
: "${pkgdesc}"
: "${pkgrel}"
: "${provides[@]}"
: "${sha256sums[@]}"
: "${source[@]}"
: "${url}"

package() {
  depends=(
    'docker>=1:29.5.0'
    'rootlesskit>=3.0.0'
    sh
  )
  # shellcheck disable=SC2016
  optdepends=(
    'fuse-overlayfs: overlayfs support'
    'lxc: experimental `lxc-user-nic` network driver'
    'passt: experimental `pasta` network driver'
    'slirp4netns: recommended network driver'
  )

  : "${depends[@]}"
  : "${optdepends[@]}"
  : "${pkgdir:?}"
  : "${srcdir:?}"

  install -Dm755 "$srcdir/dockerd-rootless-${pkgver}.sh" "$pkgdir/usr/bin/dockerd-rootless.sh"
  install -Dm644 "$srcdir/docker.socket" "$pkgdir/usr/lib/systemd/user/docker.socket"
  install -Dm644 "$srcdir/99-docker-rootless.conf" "$pkgdir/usr/lib/sysctl.d/99-docker-rootless.conf"

  # The systemd service file is bundled inside the setup script. The script is
  # unsuitable to run in this PKGBUILD, since it tampers with $HOME and other
  # similar paths, so would mess up the environment for users who run
  # `makepkg` on their host.
  # TODO: Send a patch upstream so we can make the script JUST print this.
  # shellcheck disable=SC2016
  awk '/Unit/,/EOT/' "$srcdir/dockerd-rootless-setuptool-$pkgver.sh" \
    | head -n-1 \
    | sed 's/^[[:space:]]*//' \
    | sed 's|$BIN|/usr/bin|' \
    | sed 's|\\$MAINPID|$MAINPID|' \
    | sed 's| $DOCKERD_ROOTLESS_SH_FLAGS||' \
      > "$pkgdir/usr/lib/systemd/user/docker.service"

  # Remove the $PATH override, since this will be dependant on $PATH at build
  # time and is usually undesirable.
  # TODO: Patch this upstream.
  sed -i '/Environment=PATH=/d' "$pkgdir/usr/lib/systemd/user/docker.service"
}
