@@ -27,7 +27,7 @@ echo "Packages to be upgraded: ${upgradable_array[*]}"
2727install_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
7072while [[ ${# upgradable_array[@]} -gt 0 ]]; do
7173 install_package_with_deps " ${upgradable_array[0]} "
72- upgradable_array=(" ${upgradable_array[@]} " ) # Remove empty array slots
7374done
7475
7576echo " Releasing held packages..."
0 commit comments