diff --git a/functions/update_apps.sh b/functions/update_apps.sh index 092609e4..28758d57 100644 --- a/functions/update_apps.sh +++ b/functions/update_apps.sh @@ -1,6 +1,5 @@ #!/bin/bash -current_updates=0 commander(){ mapfile -t array < <(cli -m csv -c 'app chart_release query name,update_available,human_version,human_latest_version,container_images_update_available,status' | tr -d " \t\r" | grep -E ",true($|,)" | sort) @@ -8,17 +7,33 @@ mapfile -t array < <(cli -m csv -c 'app chart_release query name,update_availabl [[ -z $timeout ]] && echo -e "\nDefault Timeout: 500" && timeout=500 || echo -e "\nCustom Timeout: $timeout" [[ "$timeout" -le 120 ]] && echo "Warning: Your timeout is set low and may lead to premature rollbacks or skips" update_limit=2 +current_updates=0 - for i in "${array[@]}" - do - update_apps "$i" && (( current_updates-- )) & - (( current_updates++ )) - processes+=($!) - while [[ "$current_updates" -ge "$update_limit" ]] + +while true +do + if [[ current_updates -ge "$update_limit" ]]; then + sleep 5 + else + for i in "${array[@]}" do - sleep 5 + update_apps "$i" && (( current_updates-- )) & (( current_updates++ )) + processes+=($!) done - done + fi +done + + + + + + + + + + + + for proc in "${processes[@]}" do