#!/bin/bash for GITEALOCALAPPBIN in "/opt/gitea/app/bin" "./app/bin" "../../app/bin"; do # echo ${GITEALOCALAPPBIN} if [ -d "${GITEALOCALAPPBIN}" ]; then break fi done if [ ! -d "${GITEALOCALAPPBIN}" ]; then echo "Directory ${GITEALOCALAPPBIN} not found" exit 1 fi if [ x"$1" == x"--self-install" ]; then ln -s "../../gitea-loader/gitea-loader.sh" "${GITEALOCALAPPBIN}/gitea-loader.sh" && { echo "Success installed ${GITEALOCALAPPBIN}/gitea-loader.sh" exit 0 } || { exit 1 } fi jq --version > /dev/null 2>&1 || { echo "Command jq not found" exit 1 } GITEALATESTVERSION="$(curl https://dl.gitea.com/gitea/version.json 2>/dev/null | jq -r .latest.version)" #GITEALATESTVERSION="1.20" GITEALATESTFILE="gitea-${GITEALATESTVERSION}-linux-amd64" GITEALATESTURLXZ="https://dl.gitea.com/gitea/${GITEALATESTVERSION}/${GITEALATESTFILE}.xz" GITEALATESTURLXZASC="https://dl.gitea.com/gitea/${GITEALATESTVERSION}/${GITEALATESTFILE}.xz.asc" while true; do if [ -f "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz" ]; then echo "Gitea version ${GITEALATESTVERSION} exists" exit 0 fi # gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 # gpg --verify gitea-1.20-linux-amd64.xz.asc gitea-1.20-linux-amd64.xz && { # echo ok # } || { # echo no # } break done if [ x"${GITEALATESTVERSION}" = x"" ]; then echo "Empty GITEALATESTVERSION" exit 1 fi echo "Download gitea version ${GITEALATESTVERSION}" curl "${GITEALATESTURLXZ}" 2>/dev/null > "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part" && { echo "Success" mv "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part" "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz" } || { echo "Failed" rm -vf "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz.part" exit 1 } echo "Extract gitea version ${GITEALATESTVERSION}" xz -cd "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.xz" > "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.part" && { echo "Success" mv "${GITEALOCALAPPBIN}/${GITEALATESTFILE}.part" "${GITEALOCALAPPBIN}/${GITEALATESTFILE}" } || { echo "Failed" rm -vf "${GITEALOCALAPPBIN}/${GITEALATESTFILE}" exit 1 } chmod +x "${GITEALOCALAPPBIN}/${GITEALATESTFILE}" curl \ -L \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "https://api.github.com/repos/go-gitea/gitea/releases?per_page=15" \ > "gitea-releases.json" 2>/dev/null || { exit 1 } for x in {3..15}; do GITEAVERSION="$(cat gitea-releases.json | jq -r ".[$x].tag_name" | grep -aoE '[0-9]+\.[0-9]+\.[0-9]+')" GITEABIN="--" GITEARCH="--" GITEABINFILE="${GITEALOCALAPPBIN}/gitea-${GITEAVERSION}-linux-amd64" GITEARCHFILE="${GITEALOCALAPPBIN}/gitea-${GITEAVERSION}-linux-amd64.xz" if [ -f "${GITEABINFILE}" ]; then GITEABIN="OK" fi if [ -f "${GITEARCHFILE}" ]; then GITEARCH="OK" fi # echo ${GITEAVERSION} ${GITEABIN} ${GITEAARCH} if [ x"${GITEABIN}" = x"OK" ]; then echo rm "${GITEABINFILE}" fi if [ $x -gt 7 -a x"${GITEARCH}" = x"OK" ]; then echo rm "${GITEARCHFILE}" fi done