socle_bash/bin/expl_refresh_thsf_site.sh

167 lines
5.5 KiB
Bash

#!/bin/bash
#------------------------------------------------------------------------------------------------------------------
# Script : expl_refresh_thsf_site.sh
# Auteur : Doug Le Tough
# Date : 23-07-2017
# Version : 1.0.0
# Objet : Permet la mise à jour du site du THSF à partir du dépôt git
#
#------------------------------------------------------------------------------------------------------------------
# Mise a jour :
#
# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production
#
#------------------------------------------------------------------------------------------------------------------
# Dependances : Aucune
#
#------------------------------------------------------------------------------------------------------------------
# Liste des options et arguments:
#
# Ce script n'accepte *aucune* option
#
# @OPT: f:bidon::::::
#
#------------------------------------------------------------------------------------------------------------------
# Liste des paramètres de configuration:
#
# THSF_DIR=/var/www/www.thsf.net
# THSF_GIT_URL=ssh://git@jimmy:/fatalerrors/thsf-pico
# THSF_GIT_USER=asr
# THSF_HTTPD_USER=apache
# THSF_DIR_MODE=755
#
#------------------------------------------------------------------------------------------------------------------
# Liste des erreurs:
#
# 2 | erreur | stop | ${ERROR}
#
#------------------------------------------------------------------------------------------------------------------
##
## Syntaxe :
## --------
##
## prompt> expl_refresh_thsf_site.sh
##
## ex:
## expl_refresh_thsf_site.sh
##
## Prérequis:
## ----------
## - Le script doit être executé par l'utilisateur asr sur marian
##
## Fonctionnement:
## ---------------
## Sur marien: Vérifie les différences entre la copie local du dépôt du site du THSF et le dépôt git.
## Met à jour a copie locale si nécessaire.
##
#------------------------------------------------------------------------------------------------------------------
# Initialisation de l'environement
#------------------------------------------------------------------------------------------------------------------
if [ "${USER}" != "asr" ]; then
ERROR="Seul l'utilisateur asr peut utiliser ce script"
echo -e "\033[91m${ERROR}\033[0m"
exit 1
fi
source /etc/profile.d/tetalab.sh
if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
echo "Arrêt du script par sécurité"
exit 250
fi
source ${NC_EXPL_CFG}/init.conf
#------------------------------------------------------------------------------------------------------------------
# Fonctions
#------------------------------------------------------------------------------------------------------------------
function check_config
{
fct_message "Vérification de la configuration:" -color jaune
if [ ! -r ${SH_FICCFG} ]; then
ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
fct_erreur 2
fi
if [ ${#THSF_DIR} -eq 0 ]; then
ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR"
fct_erreur 2
fi
if [ ${#THSF_DIR_MODE} -eq 0 ]; then
ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR_MODE"
fct_erreur 2
fi
if [ ${#THSF_HTTPD_USER} -eq 0 ]; then
ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_HTTPD_USER"
fct_erreur 2
fi
if [ ${#THSF_GIT_URL} -eq 0 ]; then
ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_URL"
fct_erreur 2
fi
if [ ${#THSF_GIT_USER} -eq 0 ]; then
ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_USER"
fct_erreur 2
fi
fct_message " * THSF_DIR: ${THSF_DIR}"
fct_message " * THSF_DIR_MODE: ${THSF_DIR_MODE}"
fct_message " * THSF_GIT_URL: ${THSF_GIT_URL}"
fct_message " * THSF_GIT_USER: ${THSF_GIT_USER}"
fct_message " * THSF_HTTPD_USER: ${THSF_HTTPD_USER}"
}
function update_thsf
{
fct_message "Mise à jour du site du THSF:" -color jaune
if [ ! -d ${THSF_DIR} ]; then
ERROR="La copie locale du dépôt n'existe pas: ${THSF_DIR}"
fct_erreur 2
fi
fct_message "Modification provisoire des droits sur ${THSF_DIR}" -color jaune
sudo chown -R ${THSF_GIT_USER}: ${THSF_DIR}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors du changement des droits"
fct_erreur 2
fi
cd ${THSF_DIR}
fct_message "Réinitialisation du dépot local" --color jaune
/usr/bin/git reset --hard
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de la réinitialisation"
fct_erreur 2
fi
fct_message "Mise à jour du dépôt local"
/usr/bin/git pull origin master
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de la mise à jour"
fct_erreur 2
fi
fct_message "Application des droits sur le dépôt local"
sudo chown -R ${THSF_HTTPD_USER}: ${THSF_DIR}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de l'application des droits"
fct_erreur 2
fi
fct_message "Application des permissions sur le dépôt local"
sudo chmod -R ${THSF_DIR_MODE} ${THSF_DIR}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de l'application des permissions "
fct_erreur 2
fi
}
#------------------------------------------------------------------------------------------------------------------
# Traitement
#------------------------------------------------------------------------------------------------------------------
check_config
update_thsf
fct_erreur 0