Skip to content

Commit d375ab0

Browse files
authored
Update 15_pkg_upgrade.sh
1 parent 68a2f6b commit d375ab0

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

scripts.d/15_pkg_upgrade.sh

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ echo "Packages to be upgraded: ${upgradable_array[*]}"
2727
install_package_with_deps() {
2828
local package=$1
2929

30-
# Skip if package is empty (prevents infinite loop issues)
30+
# Skip empty package names
3131
if [[ -z "$package" ]]; then
3232
echo "ERROR: Empty package name encountered. Skipping..."
3333
return
@@ -41,35 +41,36 @@ install_package_with_deps() {
4141
if [[ -n "$dependencies" ]]; then
4242
echo "Dependencies found for $package: $dependencies"
4343
for dep in $dependencies; do
44-
# Only upgrade dependencies that are in the upgradable list
44+
# Ensure dependency is in the upgrade list
4545
if [[ " ${upgradable_array[*]} " =~ " ${dep} " ]]; then
4646
echo "Upgrading dependency first: $dep"
4747
_apt install --only-upgrade -y "$dep" || echo "Failed to upgrade $dep"
48-
# Remove the dependency from the list of upgradable packages
48+
49+
# Properly remove the dependency from the list
4950
upgradable_array=("${upgradable_array[@]/$dep}")
51+
upgradable_array=("${upgradable_array[@]}") # Clean up empty slots
5052
fi
5153
done
5254
else
5355
echo "No dependencies found for $package"
5456
fi
5557

56-
# Install the main package
58+
# Upgrade the main package
5759
echo "Upgrading $package..."
5860
_apt install --only-upgrade -y "$package" || echo "Failed to upgrade $package"
5961

60-
# Remove package from the upgradable list
62+
# Properly remove the installed package
6163
for i in "${!upgradable_array[@]}"; do
6264
if [[ "${upgradable_array[i]}" == "$package" ]]; then
6365
unset "upgradable_array[i]"
64-
break
6566
fi
6667
done
68+
upgradable_array=("${upgradable_array[@]}") # Clean up empty slots
6769
}
6870

69-
# Loop through upgradable packages and process them one by one
71+
# Process each package and its dependencies
7072
while [[ ${#upgradable_array[@]} -gt 0 ]]; do
7173
install_package_with_deps "${upgradable_array[0]}"
72-
upgradable_array=("${upgradable_array[@]}") # Remove empty array slots
7374
done
7475

7576
echo "Releasing held packages..."

0 commit comments

Comments
 (0)