mirror of
https://github.com/EV21/uberspace-helper.git
synced 2026-10-08 04:43:18 +02:00
add Gitea update script
This commit is contained in:
1 file changed
+106
@@ -40,6 +40,7 @@ function install_gitea
|
|||||||
--config "/home/${USER}/gitea/custom/conf/app.ini"
|
--config "/home/${USER}/gitea/custom/conf/app.ini"
|
||||||
uberspace web backend set / --http --port 9000
|
uberspace web backend set / --http --port 9000
|
||||||
uberspace web backend list
|
uberspace web backend list
|
||||||
|
install_update_script
|
||||||
printf "You can now access your $APP_NAME by directing you Browser to: \n https://%s.uber.space \n" "$USER"
|
printf "You can now access your $APP_NAME by directing you Browser to: \n https://%s.uber.space \n" "$USER"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,6 +133,111 @@ function verify_file
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_update_script
|
||||||
|
{
|
||||||
|
cat << 'end_of_content' > ~/bin/gitea-update
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
APP_NAME=Gitea
|
||||||
|
GITEA_LOCATION=$HOME/gitea/gitea
|
||||||
|
TMP_LOCATION=$HOME/tmp
|
||||||
|
GPG_KEY_FINGERPRINT=7C9E68152594688862D62AF62D9AE806EC1592E2
|
||||||
|
|
||||||
|
ORG=go-gitea # Organisation or GitHub user
|
||||||
|
REPO=gitea
|
||||||
|
GITHUB_API_URL=https://api.github.com/repos/$ORG/$REPO/releases/latest
|
||||||
|
|
||||||
|
function get_local_version
|
||||||
|
{
|
||||||
|
LOCAL_VERSION=$($GITEA_LOCATION --version |
|
||||||
|
awk '{print $3}')
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_latest_version
|
||||||
|
{
|
||||||
|
curl --silent $GITHUB_API_URL > $TMP_LOCATION/github_api_response.json
|
||||||
|
TAG_NAME=$(jq --raw-output '.tag_name' $TMP_LOCATION/github_api_response.json)
|
||||||
|
LATEST_VERSION=${TAG_NAME:1}
|
||||||
|
DOWNLOAD_URL=$(jq --raw-output '.assets[].browser_download_url' $TMP_LOCATION/github_api_response.json |
|
||||||
|
grep --max-count=1 "linux-amd64")
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_signature_file
|
||||||
|
{
|
||||||
|
SIGNATURE_FILE_URL=$(jq --raw-output '.assets[].browser_download_url' $TMP_LOCATION/github_api_response.json |
|
||||||
|
grep "linux-amd64.asc")
|
||||||
|
rm $TMP_LOCATION/github_api_response.json
|
||||||
|
wget --output-document $TMP_LOCATION/gitea.asc "$SIGNATURE_FILE_URL"
|
||||||
|
}
|
||||||
|
|
||||||
|
function verify_file
|
||||||
|
{
|
||||||
|
get_signature_file
|
||||||
|
|
||||||
|
## downloading public key if it does not already exist
|
||||||
|
if ! gpg --fingerprint $GPG_KEY_FINGERPRINT
|
||||||
|
then
|
||||||
|
## currently the key download via gpg does not work on Uberspace
|
||||||
|
#gpg --keyserver keys.openpgp.org --recv $GPG_KEY_FINGERPRINT
|
||||||
|
curl --silent https://keys.openpgp.org/vks/v1/by-fingerprint/$GPG_KEY_FINGERPRINT | gpg --import
|
||||||
|
echo "$GPG_KEY_FINGERPRINT:6:" | gpg --import-ownertrust
|
||||||
|
fi
|
||||||
|
|
||||||
|
if gpg --verify $TMP_LOCATION/gitea.asc $TMP_LOCATION/gitea
|
||||||
|
then rm $TMP_LOCATION/gitea.asc; return 0
|
||||||
|
else echo "gpg verification results in a BAD signature"; exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_update_procedure
|
||||||
|
{
|
||||||
|
wget --output-document $TMP_LOCATION/gitea "$DOWNLOAD_URL"
|
||||||
|
verify_file
|
||||||
|
systemctl stop gitea
|
||||||
|
mv $TMP_LOCATION/gitea "$GITEA_LOCATION"
|
||||||
|
chmod u+x --verbose "$GITEA_LOCATION"
|
||||||
|
echo "Start gitea for upgrade"
|
||||||
|
systemctl start gitea
|
||||||
|
echo "Waiting for 10 seconds…"
|
||||||
|
sleep 10
|
||||||
|
echo "Restart gitea"
|
||||||
|
systemctl restart gitea
|
||||||
|
}
|
||||||
|
|
||||||
|
## this is a helper function to compare two versions as a "lower than" operator
|
||||||
|
function version_lt
|
||||||
|
{
|
||||||
|
test "$(echo "$@" |
|
||||||
|
tr " " "n" |
|
||||||
|
sort --version-sort --reverse |
|
||||||
|
head --lines=1)" != "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function main
|
||||||
|
{
|
||||||
|
get_local_version
|
||||||
|
get_latest_version
|
||||||
|
|
||||||
|
if [ "$LOCAL_VERSION" = "$LATEST_VERSION" ]
|
||||||
|
then
|
||||||
|
echo "Your $APP_NAME is already up to date."
|
||||||
|
echo "You are running $APP_NAME $LOCAL_VERSION"
|
||||||
|
else
|
||||||
|
if version_lt "$LOCAL_VERSION" "$LATEST_VERSION"
|
||||||
|
then
|
||||||
|
echo "There is a new version available."
|
||||||
|
echo "Doing update from $LOCAL_VERSION to $LATEST_VERSION"
|
||||||
|
do_update_procedure
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
exit $?
|
||||||
|
end_of_content
|
||||||
|
chmod u+x --verbose ~/bin/gitea-update
|
||||||
|
}
|
||||||
|
|
||||||
function yes-no_question
|
function yes-no_question
|
||||||
{
|
{
|
||||||
local question=$1
|
local question=$1
|
||||||
|
|||||||
Reference in new issue
Block a user