Files
init.sh/modules/install_pkg.sh
2022-06-24 17:52:17 +02:00

78 lines
2.4 KiB
Bash

# ------------------------------------------------------------------------------
# Install or remove packages
# This file is part of the init.sh project
# Copyright (c) 2019-2022 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.6"
export DEP_install_pkg="upgrade_dist"
install_pkg()
{
# Remove unnecessary packages
if [[ -n $PKGS_RMLIST ]]; then
prnt I "Removing some undesired packages..."
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 "Placing $pkg into the blacklist..."
local dest=/etc/apt/preferences.d/blacklist_$pkg
install_file pkgman/blacklist.conf $dest &&
sed -i -e "s/@pkg@/pkg/" $dest
tag_file $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 "Installing the package selection..."
pkginst $PKGSEL
fi
# Cleaning
prnt I "Removing not needed anymore package..."
pkgautorm
}
precheck_install_pkg()
{
if [[ -z PKGS_RMLIST ]]; then
prnt m " * No package to remove."
else
prnt m " * $(echo $PKGS_RMLIST | wc -w) package to remove."
fi
if [[ -z PKGS_BLACKLIST ]]; then
prnt m " * The packages $pkg will be placed into the blacklist !"
file_must_exists pkgman/blacklist.conf
else
prnt m " * No package to blacklist."
fi
if [[ -z $PKGSEL ]]; then
prnt m " * No additionnal package to install !"
else
prnt m " * $(echo $PKGSEL | wc -w) additionnal package have to be installed."
fi
}
export -f install_pkg
export -f precheck_install_pkg
# EOF