mirror of
https://github.com/mag37/dockcheck.git
synced 2026-02-14 15:28:22 +01:00
This change adds an optional pre-commit configuration that can be used to keep the code style clean. I've also run it across all files and fixed numerous whitespaces issues. To use it, if wanted, just clone / pull the repo as normal, go into the folder and run: ``` pre-commit install ``` From that point on, when running `git commit`, it will run the checks on any changed files. Feel free to ignore this PR if you're not interested.
51 lines
1.5 KiB
Bash
Executable file
51 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
### If not in PATH, set full path. Else just "regctl"
|
|
regbin="regctl"
|
|
### options to allow exclude:
|
|
while getopts "e:" options; do
|
|
case "${options}" in
|
|
e) Exclude=${OPTARG} ;;
|
|
*) exit 0 ;;
|
|
esac
|
|
done
|
|
shift "$((OPTIND-1))"
|
|
### Create array of excludes
|
|
IFS=',' read -r -a Excludes <<< "$Exclude" ; unset IFS
|
|
|
|
SearchName="$1"
|
|
|
|
for i in $(docker ps --filter "name=$SearchName" --format '{{.Names}}') ; do
|
|
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
|
|
printf ". "
|
|
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
|
|
LocalHash=$(docker image inspect "$RepoUrl" --format '{{.RepoDigests}}')
|
|
### Checking for errors while setting the variable:
|
|
if RegHash=$($regbin image digest --list "$RepoUrl" 2>/dev/null) ; then
|
|
if [[ "$LocalHash" = *"$RegHash"* ]] ; then NoUpdates+=("$i"); else GotUpdates+=("$i"); fi
|
|
else
|
|
GotErrors+=("$i")
|
|
fi
|
|
done
|
|
|
|
### Sort arrays alphabetically
|
|
IFS=$'\n'
|
|
NoUpdates=($(sort <<<"${NoUpdates[*]}"))
|
|
GotUpdates=($(sort <<<"${GotUpdates[*]}"))
|
|
GotErrors=($(sort <<<"${GotErrors[*]}"))
|
|
unset IFS
|
|
|
|
### List what containers got updates or not
|
|
if [[ -n ${NoUpdates[*]} ]] ; then
|
|
printf "\n\033[0;32mContainers on latest version:\033[0m\n"
|
|
printf "%s\n" "${NoUpdates[@]}"
|
|
fi
|
|
if [[ -n ${GotErrors[*]} ]] ; then
|
|
printf "\n\033[0;31mContainers with errors, wont get updated:\033[0m\n"
|
|
printf "%s\n" "${GotErrors[@]}"
|
|
fi
|
|
if [[ -n ${GotUpdates[*]} ]] ; then
|
|
printf "\n\033[0;33mContainers with updates available:\033[0m\n"
|
|
printf "%s\n" "${GotUpdates[@]}"
|
|
fi
|
|
printf "\n\n"
|