mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
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 <jan@janware.com>
This commit is contained in:
parent
166dbc06bb
commit
3842e98e11
1 changed files with 121 additions and 0 deletions
121
scripts/pkg-manager.sh
Normal file
121
scripts/pkg-manager.sh
Normal file
|
|
@ -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 "$@"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue