photoprism/scripts/dist/install-s6.sh
Michael Mayer 7ff6b384a2 Docker: Add S6 overlay to base images for process supervision #4767
see https://skarnet.org/software/s6/

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-04 18:21:35 +01:00

69 lines
2.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# This downloads and installs the s6-overlay binaries and noarch files from GitHub.
#
# Show usage information if first argument is --help.
if [[ ${1} == "--help" ]]; then
echo "Usage: ${0##*/} [version] [dir]" 1>&2
exit 0
fi
# You can provide a custom installation directory as the first argument.
S6_OVERLAY_DESTDIR=$(realpath "${2:-/}")
# Determine the system architecture.
if [[ $PHOTOPRISM_ARCH ]]; then
SYSTEM_ARCH=$PHOTOPRISM_ARCH
else
SYSTEM_ARCH=$(uname -m)
fi
. /etc/os-release
S6_OVERLAY_ARCH=${BUILD_ARCH:-$SYSTEM_ARCH}
case $S6_OVERLAY_ARCH in
amd64 | AMD64 | x86_64 | x86-64)
S6_OVERLAY_ARCH=x86_64
;;
arm64 | ARM64 | aarch64)
S6_OVERLAY_ARCH=aarch64
;;
arm | ARM | aarch | armv7l | armhf)
S6_OVERLAY_ARCH=armhf
;;
*)
echo "Unsupported Machine Architecture: \"$S6_OVERLAY_ARCH\"" 1>&2
exit 1
;;
esac
set -eu
S6_OVERLAY_LATEST=$(curl --silent "https://api.github.com/repos/just-containers/s6-overlay/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
S6_OVERLAY_VERSION=${1:-$S6_OVERLAY_LATEST}
S6_ARCH_URL="https://github.com/just-containers/s6-overlay/releases/download/${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz"
S6_NOARCH_URL="https://github.com/just-containers/s6-overlay/releases/download/${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz"
echo "Installing S6 Overlay..."
echo "------------------------------------------------"
echo "VERSION : ${S6_OVERLAY_VERSION}"
echo "LATEST : ${S6_OVERLAY_LATEST}"
echo "DESTDIR : ${S6_OVERLAY_DESTDIR}"
echo "BINARY URL: ${S6_ARCH_URL}"
echo "NOARCH URL: ${S6_NOARCH_URL}"
echo "------------------------------------------------"
echo "Extracting \"$S6_ARCH_URL\" to \"$S6_OVERLAY_DESTDIR\"."
sudo mkdir -p "${S6_OVERLAY_DESTDIR}"
wget --inet4-only -c "$S6_ARCH_URL" -O - | sudo tar -C "${S6_OVERLAY_DESTDIR}" -Jxp
echo "Extracting \"$S6_NOARCH_URL\" to \"$S6_OVERLAY_DESTDIR\"."
sudo mkdir -p "${S6_OVERLAY_DESTDIR}"
wget --inet4-only -c "$S6_NOARCH_URL" -O - | sudo tar -C "${S6_OVERLAY_DESTDIR}" -Jxp
echo "Done."