From 3842e98e11cbb39d47837598851457b244b675b9 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Sat, 15 Nov 2025 11:04:13 +0100 Subject: [PATCH] pkg-manager.sh: Re-add pkg-manager.sh pkg-manager.sh is needed by rollout cronjob, so re-add it. Signed-off-by: Jan Lindemann --- scripts/pkg-manager.sh | 121 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 scripts/pkg-manager.sh diff --git a/scripts/pkg-manager.sh b/scripts/pkg-manager.sh new file mode 100644 index 00000000..ad990e78 --- /dev/null +++ b/scripts/pkg-manager.sh @@ -0,0 +1,121 @@ +#!/bin/sh + +log() +{ + echo $@ >&2 +} + +err() +{ + echo $@ >&2 +} + +fatal() +{ + err "Giving up: $@" + exit 1 +} + +usage() +{ + cat<<-EOT + $myname cmd args + EOT +} + +run() +{ + log "Running ==== $@" + "$@" +} + +cmd_install() +{ + local env opts global_opts + local non_interactive + + set -- `getopt 'y' $*` + while [ "$1" != -- ] ; do + case "$1" in + -y) + non_interactive=1 + ;; + esac + shift + done + shift + + case $ID in + opensuse|suse) + [ "$non_interactive" = 1 ] && { + opts="--force-resolution --auto-agree-with-licenses" + global_opts="$global_opts --non-interactive --gpg-auto-import-keys --no-gpg-checks" + } + run sudo $env -S zypper $global_opts install $opts "$@" + ;; + debian|ubuntu|raspbian) + [ "$non_interactive" = 1 ] && { + global_opts="$global_opts -yq" + env="$env DEBIAN_FRONTEND=noninteractive" + } + run sudo $env -S apt-get $global_opts install "$@" + ;; + arch) + [ "$non_interactive" = 1 ] && { + global_opts="$global_opts --noconfirm" + env="$env DEBIAN_FRONTEND=noninteractive" + } + run sudo $env -S pacman $global_opts -S --needed "$@" + ;; + centos) + run sudo $env -S yum $global_opts install -y "$@" + ;; + *) + fatal "Tried to install on unsupported platform \"$ID\"" + ;; + esac +} + +cmd_refresh() +{ + local env opts global_opts + local non_interactive + + set -- `getopt 'y' $*` + while [ "$1" != -- ] ; do + case "$1" in + -y) + non_interactive=1 + ;; + esac + shift + done + shift + + case $ID in + opensuse|suse) + [ "$non_interactive" = 1 ] && { + global_opts="$global_opts --non-interactive --gpg-auto-import-keys --no-gpg-checks" + } + run sudo $env -S zypper $global_opts refresh $opts "$@" + ;; + debian|ubuntu|raspbian) + run sudo $env -S apt-get $global_opts update "$@" + ;; + centos) + run sudo $env -S yum $global_opts clean expire-cache "$@" + run sudo $env -S yum $global_opts makecache "$@" + ;; + *) + fatal "Tried to update unsupported platform \"$ID\"" + ;; + esac +} + +# -- here we go +myname=`basename $0` +. /etc/os-release +ID=${ID%%-*} +cmd="$1" +shift +cmd_$cmd "$@"