scripts/gitea/download_update_gitea.sh
2024-07-24 01:44:45 +02:00

78 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Script Updating Gitea (c) Thomas Kuschel
# since 2024
echo "Update the Gitea from the website and restart Gitea service"
website_latest="https://github.com/go-gitea/gitea/releases/latest"
website_uri="https://dl.gitea.io/gitea"
file_prefix="gitea"
file_suffix="linux-amd64"
install_dir="/usr/local/bin"
file_gitea="gitea"
temp_folder="temp08154711"
temp_file=${temp_folder}/${file_gitea}
# get the latest version with the website_latest uri to github:
website_version_raw=$( curl -Ls -I -o /dev/null -w %{url_effective} ${website_latest} )
website_version=$( echo ${website_version_raw} | sed -E 's#(.*/v)([0-9\.]*)#\2#g' )
# echo ${website_version}
# echo ${website_version_raw}
if [ -n ${website_version} ]
then
version=${website_version}
fi
version_active_raw=$( gitea --version )
version_active=$( gitea --version | awk '{ print $3; exit }' )
echo "Website version: ${version}"
echo " Active version: ${version_active}"
if [ "${version}" == "${version_active}" ]
then
echo "Both version strings are the same."
else
echo "There are differences between the two version strings."
echo "Start updating..."
read -p "Are you sure? (y/N)" -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[YyJj]$ ]]
then
uri=${website_uri}/${version}/${file_prefix}-${version}-${file_suffix}
cd ${temp_folder}
wget -O ${file_gitea} --show-progress ${uri}
wget -O ${file_gitea}.sha256 ${uri}.sha256
# strip gitea
sha256check=$( echo "$(cat gitea.sha256 | awk '{ print $1 }') ${file_gitea}" | sha256sum --check )
echo ${sha256check}
check=$( echo ${sha256check} | awk '{ print $2 }' )
if [ "${check}" == "OK" ]
then
echo "SHA256 was checked and verified OK"
sudo install --owner=git --group=git --mode=755 --strip ${file_gitea} ${install_dir}
else
echo "There was a failure in the SHA256 file check."
fi
# remove local files:
rm ${temp_file} gitea.sha256
cd ..
rmdir ${temp_folder}
fi
fi
#echo active gitea version:
echo "Active gitea full version string:"
gitea --version
read -p "Restart the gitea service on the host? (y/N)" -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[YyJj]$ ]]
then
sudo systemctl restart gitea.service
echo "gitea.service restarted."
fi