1 changed files with 39 additions and 40 deletions
@ -1,53 +1,52 @@ |
|||
#!/bin/bash |
|||
#!/usr/bin/env miaou-bash |
|||
|
|||
function usage { |
|||
local BASECMD |
|||
BASECMD=$(basename "$0") |
|||
echo "usage: $BASECMD <packages...>" |
|||
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 |
|||
local BASECMD |
|||
BASECMD=$(basename "$0") |
|||
echo "usage: $BASECMD <packages...>" |
|||
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 |
|||
exit 1 |
|||
} |
|||
|
|||
BASEDIR=$(dirname "$0") |
|||
source "$BASEDIR"/../lib/functions.bash |
|||
|
|||
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 2 |
|||
[ "$UID" -ne 0 ] && echo 'root privilege required' && exit 2 |
|||
[[ $# -lt 1 ]] && usage |
|||
|
|||
source "$MIAOU_BASH_DIR"/lib/functions.bash |
|||
|
|||
case $(os-release) in |
|||
debian | ubuntu | linuxmint) |
|||
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 |
|||
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!" |
|||
fi |
|||
done |
|||
;; |
|||
for i in "$@"; do |
|||
if ! dpkg -l "$i" 2>/dev/null | grep -q ^ii; then |
|||
apt-get install -y "$i" |
|||
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then |
|||
echo "apt package <$i> already installed!" |
|||
fi |
|||
done |
|||
;; |
|||
arch) |
|||
sudo pacman -Syyu --noconfirm |
|||
for i in "$@"; do |
|||
if ! pacman -Ql "$i" &>/dev/null; then |
|||
sudo pacman -S --noconfirm "$i" |
|||
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then |
|||
echo "pacman package <$i> already installed!" |
|||
fi |
|||
done |
|||
;; |
|||
pacman -Syyu --noconfirm |
|||
for i in "$@"; do |
|||
if ! pacman -Ql "$i" &>/dev/null; then |
|||
pacman -S --noconfirm "$i" |
|||
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then |
|||
echo "pacman package <$i> already installed!" |
|||
fi |
|||
done |
|||
;; |
|||
*) |
|||
echo "unknown os release <$(os-release)>!" && exit 2 |
|||
;; |
|||
echo "unknown os release <$(os-release)>!" && exit 2 |
|||
;; |
|||
esac |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue