Files
dotfiles/.setup/config/exclude_from_update.sh
2023-08-10 14:37:56 +02:00

41 lines
1.3 KiB
Bash
Executable File

# read list of packages to exclude from update
exclude_list_file=~/.setup/packages/exclude_from_updating.list
exclude_list=$(cat $exclude_list_file)
pacman_config_file=/etc/pacman.conf
# get current IngorePkg line from pacman.conf
# line may have # at the beginning
old_ignore_line=$(grep -P "^#?IgnorePkg" $pacman_config_file)
echo old_ignore_line: $old_ignore_line
# split line at = and take second part
old_packages_line=$(echo $old_ignore_line | cut -d= -f2)
echo old_packages_line: $old_packages_line
# extract list of packages from line, separated by spaces
old_ignore_packages=$(echo $old_packages_line| tr -s ' ' '\n')
echo old_packages: $old_packages
# add packages to ignore line, if not already there
new_ignore_packages=$old_ignore_packages
for package in $exclude_list; do
if [[ ! $old_ignore_packages =~ $package ]]; then
new_ignore_packages="$new_ignore_packages $package"
fi
done
# join packages with spaces
new_ignore_packages_line=$(echo $new_ignore_packages | tr '\n' ' ')
echo new_ignore_packages_line: $new_ignore_packages_line
# add IgnorePkg= to beginning of line
new_ignore_line="IgnorePkg = $new_ignore_packages_line"
echo new_ignore_line: $new_ignore_line
# replace old IgnorePkg line with new one
echo "updating pacman.conf"
sudo sed -i "s/$old_ignore_line/$new_ignore_line/" $pacman_config_file
echo "done"