From d63050c1c5bc835d4a3a2a2bc129e154e6acbc80 Mon Sep 17 00:00:00 2001 From: vista Date: Thu, 23 Mar 2023 19:57:24 +0100 Subject: [PATCH] Update 'check.sh' fixed errors using shellcheck https://www.shellcheck.net --- check.sh | 71 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/check.sh b/check.sh index 14b0941..388ae96 100644 --- a/check.sh +++ b/check.sh @@ -23,32 +23,32 @@ if [ -z "${TARGET}" ]; then exit 1 fi -if [ -z "${BASE_REGISTRY_USERNAME}" && -n "${REGISTRY_USERNAME}" ]; then - BASE_REPO_USERNAME="${REPO_USERNAME}" +if [ -z "${BASE_REGISTRY_USERNAME}" ] && [ -n "${REGISTRY_USERNAME}" ]; then + BASE_REGISTRY_USERNAME="${REPO_USERNAME}" fi -if [ -z "${BASE_REGISTRY_PASSWORD}" && -n "${REGISTRY_PASSWORD}" ]; then - BASE_REPO_PASSWORD="${REPO_PASSWORD}" +if [ -z "${BASE_REGISTRY_PASSWORD}" ] && [ -n "${REGISTRY_PASSWORD}" ]; then + BASE_REGISTRY_PASSWORD="${REPO_PASSWORD}" fi -if [ -z "${TARGET_REGISTRY_USERNAME}" && -n "${REGISTRY_USERNAME}" ]; then - TARGET_REPO_USERNAME="${REPO_USERNAME}" +if [ -z "${TARGET_REGISTRY_USERNAME}" ] && [ -n "${REGISTRY_USERNAME}" ]; then + TARGET_REGISTRY_USERNAME="${REPO_USERNAME}" fi -if [ -z "${TARGET_REGISTRY_PASSWORD}" && -n "${REGISTRY_PASSWORD}" ]; then - BASE_REPO_PASSWORD="${REPO_PASSWORD}" +if [ -z "${TARGET_REGISTRY_PASSWORD}" ] && [ -n "${REGISTRY_PASSWORD}" ]; then + TARGET_REGISTRY_PASSWORD="${REPO_PASSWORD}" fi if [ -z "${REGISTRY_API}" ]; then - REGISTRY_API = 'docker' + REGISTRY_API='docker' fi if [ -z "${BASE_REGISTRY_API}" ]; then - BASE_REGISTRY_API = '${REGISTRY_API}' + BASE_REGISTRY_API="${REGISTRY_API}" fi if [ -z "${TARGET_REGISTRY_API}" ]; then - TARGET_REGISTRY_API = '${REGISTRY_API}' + TARGET_REGISTRY_API="${REGISTRY_API}" fi if [ -z "${REGISTRY_URL}" ]; then @@ -78,26 +78,39 @@ echo "${TARGET}" | grep -q ":" || TARGET="${TARGET}:latest" # split repo into user reponame and tag IFS='/:' -read -ra parts <<< "${BASE_REPO}" -BASE_REPO_USER="${parts[0]}" -BASE_REPO_NAME="${parts[1]}" -BASE_REPO_TAG="${parts[2]}" +read -r BASE_REPO +set -- "$BASE_REPO" +BASE_REPO_USER="$1" +BASE_REPO_NAME="$2" +BASE_REPO_TAG="$3" -read -ra parts <<< "${TARGET_REPO}" -TARGET_REPO_USER="${parts[0]}" -TARGET_REPO_NAME="${parts[1]}" -TARGET_REPO_TAG="${parts[2]}" +read -r TARGET_REPO +set -- "$TARGET_REPO" +TARGET_REPO_USER="$1" +TARGET_REPO_NAME="$2" +TARGET_REPO_TAG="$3" + +# IFS='/:' +# read -ra parts <<< "${BASE_REPO}" +# BASE_REPO_USER="${parts[0]}" +# BASE_REPO_NAME="${parts[1]}" +# BASE_REPO_TAG="${parts[2]}" + +# read -ra parts <<< "${TARGET_REPO}" +# TARGET_REPO_USER="${parts[0]}" +# TARGET_REPO_NAME="${parts[1]}" +# TARGET_REPO_TAG="${parts[2]}" BASE_HEADER="" -if [ "${BASE_REGISTRY_API}" == 'docker' ];then - if [ -n "${BASE_REGISTRY_USERNAME}" && -n "${BASE_REGISTRY_PASSWORD}" ]; then - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${BASE_REGISTRY_USERNAME}\", \"password\": \"${BASE_REGISTRY_PASSWORD}\"}" ${BASE_REGISTRY_URL}/users/login/ | jq -r .token) +if [ "${BASE_REGISTRY_API}" = 'docker' ];then + if [ -n "${BASE_REGISTRY_USERNAME}" ] && [ -n "${BASE_REGISTRY_PASSWORD}" ]; then + TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${BASE_REGISTRY_USERNAME}\", \"password\": \"${BASE_REGISTRY_PASSWORD}\"}" "${BASE_REGISTRY_URL}/users/login/" | jq -r .token) BASE_HEADER="Authorization: JWT ${TOKEN}" fi BASE_URL="${BASE_REPO_URL}/${BASE_REPO_USER}/${BASE_REPO_NAME}/tags/${BASE_REPO_TAG}" -elif [ "${BASE_REGISTRY_API}" == 'gitea' ];then +elif [ "${BASE_REGISTRY_API}" = 'gitea' ];then if [ -n "${BASE_REGISTRY_PASSWORD}" ]; then BASE_HEADER="Authorization: token ${BASE_REGISTRY_PASSWORD}" fi @@ -106,14 +119,14 @@ fi TARGET_HEADER="" -if [ "${TARGET_REGISTRY_API}" == 'docker' ];then - if [ -n "${TARGET_REGISTRY_USERNAME}" && -n "${TARGET_REGISTRY_PASSWORD}" ]; then - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${TARGET_REGISTRY_USERNAME}\", \"password\": \"${TARGET_REGISTRY_PASSWORD}\"}" ${TARGET_REGISTRY_URL}/users/login/ | jq -r .token) +if [ "${TARGET_REGISTRY_API}" = 'docker' ];then + if [ -n "${TARGET_REGISTRY_USERNAME}" ] && [ -n "${TARGET_REGISTRY_PASSWORD}" ]; then + TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d "{\"username\": \"${TARGET_REGISTRY_USERNAME}\", \"password\": \"${TARGET_REGISTRY_PASSWORD}\"}" "${TARGET_REGISTRY_URL}/users/login/" | jq -r .token) TARGET_HEADER="Authorization: JWT ${TOKEN}" fi TARGET_URL="${TARGET_REPO_URL}/${TARGET_REPO_USER}/${TARGET_REPO_NAME}/tags/${TARGET_REPO_TAG}" -elif [ "${TARGET_REGISTRY_API}" == 'gitea' ];then +elif [ "${TARGET_REGISTRY_API}" = 'gitea' ];then if [ -n "${TARGET_REGISTRY_PASSWORD}" ]; then TARGET_HEADER="Authorization: token ${TARGET_REGISTRY_PASSWORD}" fi @@ -121,8 +134,8 @@ elif [ "${TARGET_REGISTRY_API}" == 'gitea' ];then fi # compare the update time of the BASE and TARGET images -BASE_DATE=$(curl -s -H "${HEADER}" "${BASE_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' ) -TARGET_DATE=$(curl -s -H "${HEADER}" "${TARGET_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' ) +BASE_DATE=$(curl -s -H "${BASE_HEADER}" "${BASE_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' ) +TARGET_DATE=$(curl -s -H "${TARGET_HEADER}" "${TARGET_URL}" | jq -r .last_updated | sed 's/T/ /' | sed 's/\..*//' ) BASE_TIMESTAMP=$(date -d "${BASE_DATE}" +%s) TARGET_TIMESTAMP=$(date -d "${TARGET_DATE}" +%s)