diff --git a/ensure-apk-packages.sh b/ensure-apk-packages.sh new file mode 100644 index 0000000..f7a733a --- /dev/null +++ b/ensure-apk-packages.sh @@ -0,0 +1,32 @@ +#!/bin/sh +set -eu + +log() { + echo "[init] $(date -u '+%Y-%m-%dT%H:%M:%SZ') $*" +} + +if [ "$#" -eq 0 ]; then + log "no packages supplied; nothing to ensure" + exit 0 +fi + +log "ensuring packages: $*" + +missing_packages="" +for pkg in "$@"; do + if ! command -v "$pkg" >/dev/null 2>&1; then + if [ -n "$missing_packages" ]; then + missing_packages="$missing_packages $pkg" + else + missing_packages="$pkg" + fi + fi +done + +if [ -n "$missing_packages" ]; then + log "installing $missing_packages" + set -- $missing_packages + apk add --no-cache "$@" >/dev/null 2>&1 +else + log "all requested packages already available" +fi