#!/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