You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
708 B
25 lines
708 B
#!/bin/bash
|
|
|
|
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'
|
|
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 update
|
|
fi
|
|
|
|
for i in "$@"; do
|
|
if ! dpkg -l "$i" 2>/dev/null | grep -q ^ii; then
|
|
sudo apt install -y "$i"
|
|
elif [ -n "${VERBOSE+x}" ] && $VERBOSE; then
|
|
echo "apt package <$i> already installed!"
|
|
fi
|
|
done
|