Voici un script qui permet de mettre à jour Gogs, un serveur Git parfait à installer chez soi, en l'occurrence sur un Rapsberry Pi 2.
#!/bin/bash -e
#
# https://gogs.io/docs/upgrade/upgrade_from_binary
#
usage() {
echo "À exécuter en tant que root !"
echo "$0 VERSION"
echo "$0 0.13.0"
exit 1
}
main() {
local new_version="$1"
local fname="gogs_${new_version}_linux_armv7.zip"
local output="${fname}-${new_version}"
local url="https://github.com/gogs/gogs/releases/download/v${new_version}/${fname}"
local today="$(/bin/date '+%Y-%m-%d_%H')"
local su="/bin/su - git -c"
cd /home/git
/usr/sbin/service gogs stop
$su "/usr/bin/wget ${url} -O ${output}"
[ -d gogs ] && $su "/bin/mv gogs gogs_${today}"
$su "/usr/bin/unzip ${output}"
$su "/bin/cp -Rv gogs_${today}/custom gogs"
$su "/bin/cp -Rv gogs_${today}/data gogs"
$su "/bin/cp -Rv gogs_${today}/log gogs"
/usr/sbin/service gogs start
}
[ $EUID -eq 0 ] || usage
[ -z "$1" ] && usage
main "$@"
À utiliser tel que :
$ ./update-gogs.sh "0.13.0"
Historique
- 2023-02-25 : Téléchargement de l'archive ZIP depuis GitHub au lieu de dl.gogs.io.
- 2021-04-10 : MàJ du script pour prendre en compte les versions 0.12.0+.
- 2018-08-17 : Correction
[ -n $EUID ]
→[ $EUID -eq 0 ]
et de la variabletoday
qui ajoutait un "M" à la fin, utilisation de bash au lieu de sh. - 2018-04-28 : MàJ du script pour prendre en compte les versions 0.11.43+.
- 2017-04-08 : MàJ des liens et meilleure qualité de script.
- 2016-04-16 : Utilisation des chemins absolus des exécutables.