Removed experimental -z flag and old version check code

This commit is contained in:
Thaurin
2025-02-21 17:57:09 +01:00
parent 3aeee837f9
commit b2d67c9f52

View File

@@ -34,7 +34,6 @@ Help() {
echo "-s Include stopped containers in the check. (Logic: docker ps -a)." echo "-s Include stopped containers in the check. (Logic: docker ps -a)."
echo "-t Set a timeout (in seconds) per container for registry checkups, 10 is default." echo "-t Set a timeout (in seconds) per container for registry checkups, 10 is default."
echo "-v Prints current version." echo "-v Prints current version."
echo "-z [Experimental] Check images asynchrously for increased performance."
echo echo
echo "Project source: $Github" echo "Project source: $Github"
} }
@@ -49,7 +48,7 @@ c_reset="\033[0m"
Timeout=10 Timeout=10
Stopped="" Stopped=""
while getopts "aynpfrhlisvmzc:e:d:t:" options; do while getopts "aynpfrhlisvmc:e:d:t:" options; do
case "${options}" in case "${options}" in
a|y) AutoUp="yes" ;; a|y) AutoUp="yes" ;;
c) CollectorTextFileDirectory="${OPTARG}" c) CollectorTextFileDirectory="${OPTARG}"
@@ -65,7 +64,6 @@ while getopts "aynpfrhlisvmzc:e:d:t:" options; do
s) Stopped="-a" ;; s) Stopped="-a" ;;
t) Timeout="${OPTARG}" ;; t) Timeout="${OPTARG}" ;;
v) printf "%s\n" "$VERSION" ; exit 0 ;; v) printf "%s\n" "$VERSION" ; exit 0 ;;
z) ParallelCheck=1 ;;
d) DaysOld=${OPTARG} d) DaysOld=${OPTARG}
if ! [[ $DaysOld =~ ^[0-9]+$ ]] ; then { printf "Days -d argument given (%s) is not a number.\n" "${DaysOld}" ; exit 2 ; } ; fi ;; if ! [[ $DaysOld =~ ^[0-9]+$ ]] ; then { printf "Days -d argument given (%s) is not a number.\n" "${DaysOld}" ; exit 2 ; } ; fi ;;
h|*) Help ; exit 2 ;; h|*) Help ; exit 2 ;;
@@ -284,34 +282,7 @@ if [[ $t_out ]]; then
else t_out="" else t_out=""
fi fi
if [[ $ParallelCheck -ne 1 ]]; then check_image() {
# Check the image-hash of every running container VS the registry
for i in $(docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}') ; do
((RegCheckQue+=1))
progress_bar "$RegCheckQue" "$ContCount"
# Looping every item over the list of excluded names and skipping
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
ImageId=$(docker inspect "$i" --format='{{.Image}}')
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
LocalHash=$(docker image inspect "$ImageId" --format '{{.RepoDigests}}')
# Checking for errors while setting the variable
if RegHash=$(${t_out} $regbin -v error image digest --list "$RepoUrl" 2>&1) ; then
if [[ "$LocalHash" = *"$RegHash"* ]] ; then
NoUpdates+=("$i")
else
if [[ -n "$DaysOld" ]] && ! datecheck ; then
NoUpdates+=("+$i ${ImageAge}d")
else
GotUpdates+=("$i")
fi
fi
else
# Here the RegHash is the result of an error code
GotErrors+=("$i - ${RegHash}")
fi
done
else
check_image() {
i="$1" i="$1"
local Excludes=($Excludes_string) local Excludes=($Excludes_string)
local skip local skip
@@ -342,14 +313,15 @@ else
# Here the RegHash is the result of an error code # Here the RegHash is the result of an error code
echo GotErrors "$i - ${RegHash}" echo GotErrors "$i - ${RegHash}"
fi fi
} }
export -f check_image datecheck # Make required functions and variables available to subprocesses
export Excludes_string="${Excludes[@]}" # Can only export scalar variables export -f check_image datecheck
export t_out regbin RepoUrl DaysOld export Excludes_string="${Excludes[@]}" # Can only export scalar variables
export t_out regbin RepoUrl DaysOld
# Asynchronously check the image-hash of every running container VS the registry # Asynchronously check the image-hash of every running container VS the registry
while read -r line; do while read -r line; do
((RegCheckQue+=1)) ((RegCheckQue+=1))
progress_bar "$RegCheckQue" "$ContCount" progress_bar "$RegCheckQue" "$ContCount"
@@ -363,11 +335,10 @@ else
Skip) ;; Skip) ;;
*) echo "Error! Unexpected output from subprocess: ${line}" ;; *) echo "Error! Unexpected output from subprocess: ${line}" ;;
esac esac
done < <( \ done < <( \
docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}' | \ docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}' | \
xargs -P 32 -I {} bash -c 'check_image "{}"' \ xargs -P 32 -I {} bash -c 'check_image "{}"' \
) )
fi
# Sort arrays alphabetically # Sort arrays alphabetically
IFS=$'\n' IFS=$'\n'