#!/bin/bash GIT_ROOT="/opt/phabricator" LOG_FILE="/var/log/phabricator_update.log" # Redirection vers un fichier de log et affichage exec > >(tee -a "${LOG_FILE}") 2>&1 IFS=";" read date date_fr debut <<<$(LANG="fr_FR.UTF-8" date +'%F_%T;%a %d %b à %T;%s') echo "Début de la mise à jour le ${date_fr}." if [ ! -d ${GIT_ROOT} ]; then echo "Dossier d'installation inexistant" >&2 exit 1 fi if [ ! -w ${GIT_ROOT} ]; then echo "Droits insuffisants pour écrire dans le dossier d'installation de Phabricator" >&2 exit 2 fi if [ ! -x ${GIT_ROOT}/phabricator/bin/storage ]; then echo "Impossible de trouver le script de mise à jour de la BdD pour Phabricator" >&2 exit 3 fi echo -n "Désactivation du VHOST : " a2dissite task.conf service apache2 reload echo "OK" echo -n "Désactivation des démons : " cd ${GIT_ROOT}/phabricator/ ./bin/phd stop echo "OK" echo "Mise à jour des dépôts git : " echo -n "- arcanist :" cd ${GIT_ROOT}/arcanist/ git pull echo "OK" echo -n "- libphutil :" cd ${GIT_ROOT}/libphutil/ git pull echo "OK" echo -n "- phabricator :" cd ${GIT_ROOT}/phabricator/ git pull echo "OK" echo -n "Mise à jour des schéma de la BdD :" cd ${GIT_ROOT}/phabricator/ ./bin/storage upgrade --user 'phabricator_adm' --password '?iJ&u4x^98i^Fx<+' --force echo "OK" echo -n "Réactivation des démons : " ./bin/phd start echo "OK" echo -n "Réactivation du VHOST : " a2ensite task.conf service apache2 reload echo "OK" fin=$(date +'%s') echo "Fin de la mise à jour, temps total $((fin - debut))s."