Created
September 2, 2021 20:56
-
-
Save sebastianlipponer/2432299572c9fd614359f0ad97a0c4bd to your computer and use it in GitHub Desktop.
gitea update bash script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
echo "Checking github.com for most recent Gitea release..." | |
GITHUB=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/go-gitea/gitea/releases/latest) | |
GITEA_DIR=/opt/gitea | |
TAG_NAME=$(echo $GITHUB | jq -r '[.tag_name] | first') | |
VERSION=${TAG_NAME:1} | |
echo "-> found version $VERSION" | |
echo "Checking installed version..." | |
INSTALLED=$(ls $GITEA_DIR/gitea-* 2>/dev/null || true) | |
[[ $INSTALLED =~ .*gitea-([0-9]+.[0-9]+.[0-9]+)-linux-amd64$ ]] || true | |
echo "-> found version ${BASH_REMATCH[1]}" | |
if [ "$(printf '%s\n' "$VERSION" "${BASH_REMATCH[1]}" | sort -V | head -n1)" = "$VERSION" ]; then | |
echo "Aborting..." | |
exit 0 | |
fi | |
ELF_FILE=gitea-$VERSION-linux-amd64 | |
SHA256_FILE=$ELF_FILE.sha256 | |
BUILD_LINUX_ELF_URL=$(echo $GITHUB | jq -r '.assets[] | select(.name == "'$ELF_FILE'") | .browser_download_url') | |
BUILD_LINUX_SHA256_URL=$(echo $GITHUB | jq -r '.assets[] | select(.name == "'$SHA256_FILE'") | .browser_download_url') | |
echo "Downloading..." | |
curl --progress-bar --remote-name --location $BUILD_LINUX_ELF_URL | |
echo "-> download finished" | |
SHA256=$(sha256sum $ELF_FILE) | |
SHA256_EXPECTED=$(curl -L -s $BUILD_LINUX_SHA256_URL) | |
echo "Verifying SHA256 hash..." | |
if [ "$SHA256" == "$SHA256_EXPECTED" ]; then | |
echo "-> sha256 verification successful" | |
else | |
echo "-> sha256sum verification failed" | |
echo " sha256sum: $SHA256" | |
echo " expected : $SHA256_EXPECTED" | |
exit 1 | |
fi | |
echo "Installing..." | |
service gitea stop | |
rm -f $GITEA_DIR/gitea | |
rm -f $GITEA_DIR/gitea-* | |
mv $ELF_FILE $GITEA_DIR | |
chown git:git $GITEA_DIR/$ELF_FILE | |
chmod 755 $GITEA_DIR/$ELF_FILE | |
sudo -u git -H ln -s $GITEA_DIR/$ELF_FILE $GITEA_DIR/gitea | |
service gitea start | |
echo "-> installation finished" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment