gitea: added update script

This commit is contained in:
Oliver Schraml 2021-04-29 17:24:13 +02:00
parent 31ee1a9c74
commit 4d33384872
Signed by: oliver.schraml
GPG Key ID: 9DBD4AEB3C21898F
2 changed files with 92 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*~
.*.sw?
.sw?
\#*\#
DEADJOE

87
gitea/update_gitea.sh Executable file
View File

@ -0,0 +1,87 @@
#!/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}