tools -> scripts
This commit is contained in:
72
scripts/helpers/packages.sh
Normal file
72
scripts/helpers/packages.sh
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
source $( dirname $(readlink -e -- "${BASH_SOURCE}"))/io.sh || exit 255
|
||||
|
||||
########################################################
|
||||
# Functions to control system packages
|
||||
########################################################
|
||||
|
||||
installed() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
installed_pkg() {
|
||||
dpkg --list | grep -qw "ii $1"
|
||||
}
|
||||
|
||||
apt_ppa_add() {
|
||||
sudo add-apt-repository -y $*
|
||||
}
|
||||
|
||||
apt_ppa_remove() {
|
||||
sudo add-apt-repository -ry $*
|
||||
}
|
||||
|
||||
apt_update() {
|
||||
sudo apt update $*
|
||||
}
|
||||
|
||||
apt_install() {
|
||||
sudo apt install -y $*
|
||||
}
|
||||
|
||||
apt_remove() {
|
||||
sudo apt purge -y $*
|
||||
}
|
||||
|
||||
dpkg_install() {
|
||||
sudo dpkg -i $*
|
||||
}
|
||||
|
||||
dpkg_remove() {
|
||||
sudo dpkg -r $*
|
||||
}
|
||||
|
||||
dpkg_arch() {
|
||||
dpkg --print-architecture
|
||||
}
|
||||
|
||||
require() {
|
||||
sw=()
|
||||
for package in "$@"; do
|
||||
if ! installed "$package" && ! installed_pkg "$package"; then
|
||||
sw+=("$package")
|
||||
fi
|
||||
done
|
||||
if [ ${#sw[@]} -gt 0 ]; then
|
||||
info "These packages will be installed in your system:\n${sw[*]}"
|
||||
apt_install ${sw[*]}
|
||||
[ $? -gt 0 ] && die "installation cancelled" 201
|
||||
fi
|
||||
}
|
||||
|
||||
require_pkg() {
|
||||
sw=()
|
||||
for package in "$@"; do
|
||||
if ! installed "$package" && ! installed_pkg "$package"; then
|
||||
sw+=("$package")
|
||||
fi
|
||||
done
|
||||
if [ ${#sw[@]} -gt 0 ]; then
|
||||
die "These packages must be installed in your system:\n${sw[*]}" 200
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user