forge.devinsy.fr-tools/upgrade

62 lines
2.5 KiB
Bash
Executable file

#!/bin/bash
set -ex
BINDIR=/srv/gitea/bin
GITEA_HOME=/srv/gitea
export GITEA_WORK_DIR=/srv/gitea
cd $BINDIR
if [ -z "$1" ]; then
echo "Need version value."
else
#
VERSION="$1"
# Verify.
if ./gitea --version | grep -q "version $VERSION " ; then
echo "Same version."
else
# Download the binary file.
wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64
# Check the binary file.
wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64.sha256
sha256sum -c forgejo-${VERSION}-linux-amd64.sha256
# Verify the binary file.
wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64.asc
# gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
gpg --verify forgejo-${VERSION}-linux-amd64.asc forgejo-${VERSION}-linux-amd64
# Flush queues.
su - git -c "cd /srv/gitea/bin ; $BINDIR/gitea -c /etc/gitea/gitea.ini manager flush-queues"
# Stop.
systemctl stop gitea
# Dump.
su - git -c "cd /srv/gitea/bin ; $BINDIR/gitea dump --tempdir $GITEA_HOME/tmp/ -c /etc/gitea/gitea.ini"
# Call doctor.
#su - git -c "cd /srv/gitea/bin ; $BINDIR/gitea doctor --all --fix -c /etc/gitea/gitea.ini"
#su - git -c "cd /srv/forgejo/bin ; $BINDIR/forgejo doctor --all --fix -c /etc/forgejo/forgejo.ini -C /srv/forgejo/custom -w /srv/forgejo/"
su - git -c "cd /srv/gitea/bin ; $BINDIR/gitea doctor check --all --fix -c /etc/gitea/gitea.ini -C /srv/gitea/custom -w /srv/gitea/"
# Upgrade.
chmod u+x forgejo-$VERSION-linux-amd64
chown git:gitea forgejo-$VERSION-linux-amd64
ln --force forgejo-$VERSION-linux-amd64 gitea
# Start.
#systemctl start gitea
echo "Please, check then start the service Gitea."
read -e -p "Start Gitea service? [Y/n] " choice
if [[ "$choice" =~ ^[yY]$ ]]; then
echo "Restarting…"
systemctl start gitea
journalctl -f -u gitea
fi
fi
fi