167 lines
5.5 KiB
Bash
Executable File
167 lines
5.5 KiB
Bash
Executable File
#!/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
|