88 lines
3.9 KiB
Bash
Executable File
88 lines
3.9 KiB
Bash
Executable File
#!/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}
|