diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79112f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*~ +.*.sw? +.sw? +\#*\# +DEADJOE diff --git a/gitea/update_gitea.sh b/gitea/update_gitea.sh new file mode 100755 index 0000000..d25f2e3 --- /dev/null +++ b/gitea/update_gitea.sh @@ -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}