archlinux support

This commit is contained in:
pvincent
2024-04-29 21:12:35 +04:00
parent 5bf228bb04
commit ea9c402a04
4 changed files with 54 additions and 14 deletions
+38 -12
View File
@@ -1,25 +1,51 @@
#!/bin/bash
source "$MIAOU_BASH_DIR"/lib/functions.sh
function usage {
local BASECMD
BASECMD=$(basename "$0")
echo "usage: $BASECMD <packages...>"
echo 'idempotent debian package installation : update if necessary, install only if not yet done'
case $(os-release) in
debian)
echo 'idempotent debian package installation : update if necessary, install only if not yet done'
;;
arch)
echo 'idempotent archlinux package installation : update if necessary, install only if not yet done'
;;
esac
exit 1
}
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 2
[[ $# -lt 1 ]] && usage
if [ "$(date --date='-12 hours' +%s)" -gt "$(date -d "$(stat -c %y /var/lib/apt/lists/partial)" +%s)" ]; then
echo "updating repositoring..."
apt-get update
fi
for i in "$@"; do
if ! dpkg -l "$i" 2>/dev/null | grep -q ^ii; then
sudo apt-get install -y "$i"
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then
echo "apt package <$i> already installed!"
case $(os-release) in
debian)
if [ "$(date --date='-12 hours' +%s)" -gt "$(date -d "$(stat -c %y /var/lib/apt/lists/partial)" +%s)" ]; then
echo "updating repositoring..."
apt-get update
fi
done
for i in "$@"; do
if ! dpkg -l "$i" 2>/dev/null | grep -q ^ii; then
sudo apt-get install -y "$i"
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then
echo "apt package <$i> already installed!"
fi
done
;;
arch)
for i in "$@"; do
if ! pacman -Ql "$i" 2>/dev/null | grep -q ^ii; then
sudo pacman -S "$i"
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then
echo "pacman package <$i> already installed!"
fi
done
;;
*)
echo "unknown os release <$(os-release)>!" && exit 2
;;
esac