74 lines
2.3 KiB
Bash
74 lines
2.3 KiB
Bash
# ------------------------------------------------------------------------------
|
|
# Install or remove packages
|
|
# This file is part of the init.sh project
|
|
# Copyright (c) 2019-2021 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
|
|
# ------------------------------------------------------------------------------
|
|
# This file is distributed under 3-clause BSD license.
|
|
# The complete license agreement can be obtained at:
|
|
# https://opensource.org/licenses/BSD-3-Clause
|
|
# ------------------------------------------------------------------------------
|
|
# Variable:
|
|
# * PKGS_RMLIST: packages to remove
|
|
# * PKGS_BLACKLIST: package to mark as forbidden (will be removed if not)
|
|
# * PKGSEL: List of package to install
|
|
# ------------------------------------------------------------------------------
|
|
|
|
export VER_install_pkg="0.1.2"
|
|
export DEP_install_pkg="upgrade_dist"
|
|
|
|
install_pkg()
|
|
{
|
|
# Remove unnecessary packages
|
|
if [[ -n $PKGS_RMLIST ]]; then
|
|
prnt I "Suppression de paquets supperflus..."
|
|
pkgrm $PKGS_RMLIST
|
|
fi
|
|
|
|
# Blacklist some anoying packages (and remove them if needed)
|
|
if [[ -n PKGS_BLACKLIST ]]; then
|
|
for pkg in $PKGS_BLACKLIST; do
|
|
prnt I "Mise du paquet $pkg en liste noire..."
|
|
local dest=/etc/apt/preferences.d/blacklist_$pkg.conf
|
|
installfile blacklist.conf $dest &&
|
|
sed -i -e "s/@pkg@/pkg/" $dest
|
|
|
|
# If blacklisted we suppose uninstall as well (if neeeded)
|
|
pkgrm $pkg
|
|
done
|
|
fi
|
|
|
|
# Install all the configured packages
|
|
if [[ -n $PKGSEL ]]; then
|
|
prnt I "Installation de la sélection de paquets..."
|
|
pkginst $PKGSEL
|
|
fi
|
|
|
|
# Cleaning
|
|
prnt I "Suppression des paquets résiduels le cas échéant..."
|
|
pkgautorm
|
|
}
|
|
|
|
precheck_install_pkg()
|
|
{
|
|
if [[ -z PKGS_RMLIST ]]; then
|
|
prnt I "Aucun paquet à désinstaller"
|
|
else
|
|
prnt I "$(echo $PKGS_RMLIST | wc -w) paquets à supprimer."
|
|
fi
|
|
|
|
if [[ -z PKGS_BLACKLIST ]]; then
|
|
prnt W "Les paquets $pkg seront placés en liste noire !"
|
|
fi
|
|
|
|
if [[ -z $PKGSEL ]]; then
|
|
prnt W "Pas de paquet additionel à installer !"
|
|
else
|
|
prnt I "$(echo $PKGSEL | wc -w) paquets additionels seront installés."
|
|
fi
|
|
}
|
|
|
|
export -f install_pkg
|
|
export -f precheck_install_pkg
|
|
|
|
# EOF
|