From 17e6bd4dcfb5d6483f2f22a770da582ac2edee89 Mon Sep 17 00:00:00 2001 From: mag37 Date: Mon, 23 Jan 2023 12:05:22 +0100 Subject: [PATCH] Update dupc_function.sh re-wrote it some to followe the changes in the main script. --- dupc_function.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/dupc_function.sh b/dupc_function.sh index 4047f0f..2ed8526 100644 --- a/dupc_function.sh +++ b/dupc_function.sh @@ -1,25 +1,29 @@ #!/bin/bash -### Requires the regctl binary, either in PATH or as an alias +### Requires the regctl binary. ### Get it here: https://github.com/regclient/regclient/releases ### Preferably placed in .bashrc or similar -### if regctl is not in PATH, set the alias: -alias regctl="/path/to/regctl" - +### Set the full path to the binary or just regctl if in PATH: +regctl="/home/gw-tdc/dockers/regctl" dupc () { - if [[ -z "$1" ]]; then + if [[ "$@" == "help" ]]; then echo "No container name given, here's the list of currently running containers:" docker ps --format '{{.Names}}' else - for i in $(docker ps --filter "name=$1" --format '{{.Names}}') + for i in $(docker ps --filter "name=$@" --format '{{.Names}}') do RepoUrl=$(docker inspect $i --format='{{.Config.Image}}') - LocalHash=$(docker image inspect $RepoUrl --format '{{.RepoDigests}}' | sed -e 's/.*sha256/sha256/' -e 's/\]$//') - RegHash=$(regctl image digest --list $RepoUrl) - if [[ "$LocalHash" != "$RegHash" ]] ; then printf "Updates available for $i.\n" ; else printf "$i is already latest.\n" ; fi + LocalHash=$(docker image inspect $RepoUrl --format '{{.RepoDigests}}') + RegHash=$($regctl image digest --list $RepoUrl 2>/dev/null) + if [ $? -eq 0 ] ; then + if [[ "$LocalHash" = *"$RegHash"* ]] ; then printf "$i is already latest.\n" ; else printf "$i got updates.\n" ; fi + else + printf "$i got errors, no check possible.\n" + fi done fi } +dupc $1