Skip to content

Commit b8da614

Browse files
authored
Update 15_pkg_upgrade.sh
1 parent 83cc3dc commit b8da614

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

scripts.d/15_pkg_upgrade.sh

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,34 @@ _apt update || die "Could not update package sources"
2020

2121
while true; do
2222
echo "Fetching list of upgradeable packages"
23-
mapfile -t upgradeable_packages < <(_chroot apt list --upgradable 2>/dev/null | awk -F/ 'NR>1 {print $1}' | grep -v '^WARNING' | grep -v '^Listing' | grep -v '^$')
23+
mapfile -t all_upgradeable_packages < <(_chroot apt list --upgradable 2>/dev/null | awk -F/ 'NR>1 {print $1}' | grep -v '^WARNING' | grep -v '^Listing' | grep -v '^$')
2424

25-
if [ ${#upgradeable_packages[@]} -eq 0 ]; then
25+
if [ ${#all_upgradeable_packages[@]} -eq 0 ]; then
2626
echo "No more packages to upgrade. Exiting loop."
2727
break
2828
fi
2929

30-
echo "Upgradeable packages:"
31-
printf '%s\n' "${upgradeable_packages[@]}"
32-
33-
# Remove held packages from upgrade list
34-
upgradeable_packages=($(printf "%s\n" "${upgradeable_packages[@]}" | grep -v -E "$(printf "|%s" "${packages_to_hold[@]}")"))
30+
echo "Filtering out held packages..."
31+
upgradeable_packages=()
32+
for pkg in "${all_upgradeable_packages[@]}"; do
33+
if [[ " ${packages_to_hold[*]} " =~ " $pkg " ]]; then
34+
echo "Skipping held package: $pkg"
35+
else
36+
upgradeable_packages+=("$pkg")
37+
fi
38+
done
3539

3640
if [ ${#upgradeable_packages[@]} -eq 0 ]; then
3741
echo "No more non-held packages to upgrade. Exiting loop."
3842
break
3943
fi
4044

41-
last_package="${upgradeable_packages[-1]}"
45+
echo "Upgradeable packages:"
46+
printf '%s\n' "${upgradeable_packages[@]}"
4247

43-
echo "Upgrading last package: $last_package"
44-
_op _chroot apt install -y "$last_package" || die "Failed to upgrade $last_package"
48+
echo "Upgrading package: ${upgradeable_packages[0]}"
49+
_op _chroot apt install -y "${upgradeable_packages[0]}" || echo "Failed to upgrade ${upgradeable_packages[0]}"
50+
4551
done
4652

4753
echo "Releasing held packages..."

0 commit comments

Comments
 (0)