Script de mise à jour de Gogs

Voici un script qui permet de mettre à jour Gogs, un serveur Git à installer chez soi, en l’occurrence sur un Raspberry Pi 2.

update-gogs.sh
#!/bin/bash
#
# https://gogs.io/docs/upgrade/upgrade_from_binary
#
set -e

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
    local su='/bin/su - git -c'

    today="$(/bin/date '+%Y-%m-%d_%H')"

    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 "$@"

Rendre le script exécutable :

chmod a+x update-gogs.sh

À utiliser tel que :

./update-gogs.sh "0.13.0"

📜 Historique

2024-02-01

Déplacement de l’article depuis le blog.

2023-02-25

Téléchargement de l’archive ZIP depuis GitHub au lieu de dl.gogs.io.

2021-04-10

Support de Gogs 0.12.0+.

2018-08-17

Correction de [ -n $EUID ][ $EUID -eq 0 ].

Correction de la variable today qui ajoutait un « M » à la fin.

Utilisation de bash au lieu de sh.

2018-04-28

Support de Gogs 0.11.43+.

2017-04-08

Revue des liens et meilleure qualité du script.

2016-04-16

Utilisation des chemins absolus des exécutables.

2016-03-31

Premier jet.