#!/bin/bash PATH="/usr/local/bin:/usr/bin:/bin" upurl="https://api.github.com/repos/go-gitea/gitea/releases/latest" despa="${HOME}/temp/gitea_update" exdir="/gitea" exdir_update="${exdir}/update" expa="${exdir}/gitea" reltag="" pushovermsg="" rtcode=0 latest_curl="" giteaname="" giteauser="gitea" function cleanup() { /bin/rm -rf "${despa}" sudo /bin/rm -f "${exdir_update}/"gitea*linux-amd64* >/dev/null 2>&1 } trap cleanup EXIT SIGHUP SIGINT SIGTERM sendpushover() { /home/suchademon/VersionControl/pushover/pushover.sh -d maindevices -t gitea -A notifyDeamon "$1" & } /bin/mkdir -p ${despa} >/dev/null 2>&1 || exit 2 latest_curl=$(/usr/bin/curl -s "${upurl}") reltag=$(/usr/bin/jq -r '.name' <<<"${latest_curl}" | sed -e 's/^v//g') if /usr/bin/sudo ${expa} --version | grep -q "Gitea version ${reltag} " ; then echo "Upstream version same as local binary ${reltag}" exit 0 fi giteaname="gitea-${reltag}-linux-amd64" dlpath=$(/usr/bin/jq -r '.assets|.[].browser_download_url' <<<"${latest_curl}" | grep -E "linux.amd64.sha256$" ) if /usr/bin/wget "${dlpath}" --output-document "${despa}/${giteaname}.sha256" >/dev/null 2>&1 ; then echo "downloaded gitea-${reltag} sha256 sum" dlpath=$(/usr/bin/jq -r '.assets|.[].browser_download_url' <<<"${latest_curl}" | grep -E "linux.amd64$" ) if /usr/bin/wget "${dlpath}" --output-document "${despa}/${giteaname}" >/dev/null 2>&1 ; then echo "downloaded gitea-${reltag} binary" if [ "$(/bin/cat "${despa}/${giteaname}.sha256" | /usr/bin/awk '{print $1}')" != "$(/usr/bin/sha256sum "${despa}/${giteaname}" | /usr/bin/awk '{print $1}')" ]; then sendpushover "SHA256 of gitea-${reltag} do not match .sha256 file\n-------------------------------------\n$(/bin/cat "${despa}/${giteaname}.sha256")\n$(/usr/bin/sha256sum ""${despa}/${giteaname}"")" exit 1 fi echo "new gitea-${reltag} sum checked ok" echo "comparing gitea sum new with running version" if [ "$(/usr/bin/sudo /usr/bin/sha256sum ${expa} | /usr/bin/awk '{print $1}')" != "$(/usr/bin/sha256sum "${despa}/${giteaname}" | /usr/bin/awk '{print $1}')" ]; then echo "new version detected" echo "move gitea-${reltag} to update dir" if sudo /usr/bin/mv "${despa}/${giteaname}.sha256" "${exdir_update}/${giteaname}.sha256" >/dev/null 2>&1 ; then if sudo /usr/bin/mv "${despa}/${giteaname}" "${exdir_update}/${giteaname}" ; then if sudo /usr/bin/chown ${giteauser}. "${exdir_update}/gitea-${reltag}"* >/dev/null 2>&1 ; then if ! sudo /usr/bin/chmod 700 ${giteauser} "${exdir_update}/gitea-${reltag}"* >/dev/null 2>&1 ; then echo "failed to change mod gitea-${reltag} update files" exit 1 fi else echo "failed to chown gitea-${reltag} update files" exit 1 fi else echo "failed to move gitea-${reltag} binary to update dir" exit 1 fi else echo "failed to move gitea-${reltag} sha256 to update dir" exit 1 fi echo "try to deploy new gitea version" if pushovermsg="$(/usr/bin/sudo ${exdir_update}/update_gitea.sh -p -n "${exdir_update}/${giteaname}")" ; then pushovermsg="gitea ${reltag} available on github (autodeploy) \n${reltag}\n${pushovermsg}\nAutodeploy finished, version live" else pushovermsg="gitea ${reltag} available on github, auto deploy did not work\n-------------------------------------\n${pushovermsg}\nCopied files to gitea-update dir" fi fi else pushovermsg="Could not download ${dlpath}" rtcode=1 fi else pushovermsg="Could not download ${dlpath}" rtcode=1 fi sendpushover "${pushovermsg}" exit ${rtcode}