From de1a70da75f2b12b894aaca2f900d15e33a07554 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Thu, 17 Feb 2022 10:52:24 +0100 Subject: [PATCH] Update 99-run.sh --- .../rootfs/etc/cont-init.d/99-run.sh | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/addons_updater/rootfs/etc/cont-init.d/99-run.sh b/addons_updater/rootfs/etc/cont-init.d/99-run.sh index 7de2c4ff1..153741e4d 100644 --- a/addons_updater/rootfs/etc/cont-init.d/99-run.sh +++ b/addons_updater/rootfs/etc/cont-init.d/99-run.sh @@ -11,7 +11,7 @@ bashio::log.info "Checking status of referenced repositoriess..." VERBOSE=$(bashio::config 'verbose') #Defining github value -LOGINFO="... github authentification" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi +LOGINFO="... github authentification" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi GITUSER=$(bashio::config 'gituser') GITPASS=$(bashio::config 'gitpass') @@ -19,15 +19,16 @@ GITMAIL=$(bashio::config 'gitmail') git config --system http.sslVerify false git config --system credential.helper 'cache --timeout 7200' git config --system user.name ${GITUSER} -git config --system user.password ${GITPASS} -git config --system user.email ${GITMAIL} +git config --system user.password "${GITPASS}" +git config --system user.email "${GITMAIL}" if bashio::config.has_value 'gitapi'; then - LOGINFO="... setting github API" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi - export GITHUB_API_TOKEN=$(bashio::config 'gitapi') + LOGINFO="... setting github API" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi + GITHUB_API_TOKEN=$(bashio::config 'gitapi') + export GITHUB_API_TOKEN fi -LOGINFO="... parse addons" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi +LOGINFO="... parse addons" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi for addons in $(bashio::config "addon|keys"); do SLUG=$(bashio::config "addon[${addons}].slug") @@ -41,29 +42,29 @@ for addons in $(bashio::config "addon|keys"); do DATE="$(date '+%d-%m-%Y')" #Create or update local version - if [ ! -d /data/$BASENAME ]; then - LOGINFO="... $SLUG : cloning ${REPOSITORY}" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi - cd /data/ + if [ ! -d "/data/$BASENAME" ]; then + LOGINFO="... $SLUG : cloning ${REPOSITORY}" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi + cd /data/ || exit git clone "https://github.com/${REPOSITORY}" else - LOGINFO="... $SLUG : updating ${REPOSITORY}" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : updating ${REPOSITORY}" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi cd "/data/$BASENAME" git pull --rebase &>/dev/null || git reset --hard &>/dev/null git pull --rebase &>/dev/null fi #Define the folder addon - LOGINFO="... $SLUG : checking slug exists in repo" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi - cd /data/${BASENAME}/${SLUG} || bashio::log.error "$SLUG addon not found in this repository. Exiting. Exiting." + LOGINFO="... $SLUG : checking slug exists in repo" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi + cd /data/"${BASENAME}"/"${SLUG}" || bashio::log.error "$SLUG addon not found in this repository. Exiting. Exiting." #Find current version - LOGINFO="... $SLUG : get current version" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : get current version" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi CURRENT=$(jq .upstream config.json) || bashio::log.error "$SLUG addon upstream tag not found in config.json. Exiting." - if [ $SOURCE = "dockerhub" ]; then + if [ "$SOURCE" = "dockerhub" ]; then # Use dockerhub as upstream DOCKERHUB_REPO=$(echo "${UPSTREAM%%/*}") - DOCKERHUB_IMAGE=$(echo $UPSTREAM | cut -d "/" -f2) + DOCKERHUB_IMAGE=$(echo "$UPSTREAM" | cut -d "/" -f2) LASTVERSION=$( curl -L -s --fail "https://hub.docker.com/v2/repositories/${DOCKERHUB_REPO}/${DOCKERHUB_IMAGE}/tags/?page_size=1000" | jq '.results | .[] | .name' -r | @@ -72,7 +73,7 @@ for addons in $(bashio::config "addon|keys"); do sort -V | tail -n 1 ) - [ ${BETA} = true ] && + [ "${BETA}" = true ] && LASTVERSION=$( curl -L -s --fail "https://hub.docker.com/v2/repositories/${DOCKERHUB_REPO}/${DOCKERHUB_IMAGE}/tags/?page_size=1000" | jq '.results | .[] | .name' -r | @@ -85,30 +86,30 @@ for addons in $(bashio::config "addon|keys"); do else # Use github as upstream #Prepare tag flag - if [ ${FULLTAG} = true ]; then - LOGINFO="... $SLUG : fulltag is on" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + if [ "${FULLTAG}" = true ]; then + LOGINFO="... $SLUG : fulltag is on" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi FULLTAG="--format tag" else - LOGINFO="... $SLUG : fulltag is off" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : fulltag is off" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi FULLTAG="" fi #Prepare tag flag - if [ ${HAVINGASSET} = true ]; then - LOGINFO="... $SLUG : asset_only tag is on" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + if [ "${HAVINGASSET}" = true ]; then + LOGINFO="... $SLUG : asset_only tag is on" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi HAVINGASSET="--having-asset" else - LOGINFO="... $SLUG : asset_only is off" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : asset_only is off" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi HAVINGASSET="" fi #If beta flag, select beta version - if [ ${BETA} = true ]; then - LOGINFO="... $SLUG : beta is on" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi - LASTVERSION=$(lastversion --pre "https://github.com/$UPSTREAM" $FULLTAG $HAVINGASSET) || break + if [ "${BETA}" = true ]; then + LOGINFO="... $SLUG : beta is on" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi + LASTVERSION=$(lastversion --pre "https://github.com/$UPSTREAM" "$FULLTAG" "$HAVINGASSET") || break else - LOGINFO="... $SLUG : beta is off" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi - LASTVERSION=$(lastversion "https://github.com/$UPSTREAM" $FULLTAG $HAVINGASSET) || break + LOGINFO="... $SLUG : beta is off" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi + LASTVERSION=$(lastversion "https://github.com/$UPSTREAM" "$FULLTAG" "$HAVINGASSET") || break fi fi @@ -123,34 +124,34 @@ for addons in $(bashio::config "addon|keys"); do CURRENT2=${CURRENT} # Update if needed - if [ ${CURRENT2} != ${LASTVERSION2} ]; then - LOGINFO="... $SLUG : update from ${CURRENT} to ${LASTVERSION}" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + if [ "${CURRENT2}" != "${LASTVERSION2}" ]; then + LOGINFO="... $SLUG : update from ${CURRENT} to ${LASTVERSION}" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi #Change all instances of version - LOGINFO="... $SLUG : updating files" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : updating files" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi for files in "config.json" "config.yaml" "Dockerfile" "build.json" "build.yaml";do - if [ -f /data/${BASENAME}/${SLUG}/$files ]; then - sed -i "s/${CURRENT}/${LASTVERSION}/g" /data/${BASENAME}/${SLUG}/$files + if [ -f /data/"${BASENAME}"/"${SLUG}"/$files ]; then + sed -i "s/${CURRENT}/${LASTVERSION}/g" /data/"${BASENAME}"/"${SLUG}"/"$files" fi done # Remove " and modify version LASTVERSION=${LASTVERSION//\"/} CURRENT=${CURRENT//\"/} - jq --arg variable $LASTVERSION '.version = $variable' /data/${BASENAME}/${SLUG}/config.json | sponge /data/${BASENAME}/${SLUG}/config.json # Replace version tag + jq --arg variable "$LASTVERSION" '.version = $variable' /data/"${BASENAME}"/"${SLUG}"/config.json | sponge /data/"${BASENAME}"/"${SLUG}"/config.json # Replace version tag #Update changelog - touch /data/${BASENAME}/${SLUG}/CHANGELOG.md + touch "/data/${BASENAME}/${SLUG}/CHANGELOG.md" sed -i "1i - Update to latest version from $UPSTREAM" /data/${BASENAME}/${SLUG}/CHANGELOG.md sed -i "1i ## ${LASTVERSION} (${DATE})" /data/${BASENAME}/${SLUG}/CHANGELOG.md sed -i "1i " /data/${BASENAME}/${SLUG}/CHANGELOG.md - LOGINFO="... $SLUG : files updated" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : files updated" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi #Git commit and push git add -A # add all modified files git commit -m "Updater bot : $SLUG updated to ${LASTVERSION}" >/dev/null - LOGINFO="... $SLUG : push to github" && if [ $VERBOSE = true ]; then bashio::log.info $LOGINFO; fi + LOGINFO="... $SLUG : push to github" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi git remote set-url origin "https://${GITUSER}:${GITPASS}@github.com/${REPOSITORY}" &>/dev/null git push &>/dev/null