78 lines
2.2 KiB
Bash
78 lines
2.2 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
|