Skip to content

Instantly share code, notes, and snippets.

@sebastianlipponer
Created September 2, 2021 20:56
Show Gist options
  • Save sebastianlipponer/2432299572c9fd614359f0ad97a0c4bd to your computer and use it in GitHub Desktop.
Save sebastianlipponer/2432299572c9fd614359f0ad97a0c4bd to your computer and use it in GitHub Desktop.
gitea update bash script
#!/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