From 70da4316d6e4eaa1f8f8bf3633f8320921666573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Mon, 22 Sep 2025 19:10:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(ensure-apk-packages):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=20APK=20=E5=8C=85=E5=AE=89=E8=A3=85=E7=9A=84?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ensure-apk-packages.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ensure-apk-packages.sh 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