L'ensemble des scripts et bibliothèques bash utilisés pour maintenir l'infrastructure du Tetalab. Ce socle Bash est une version légère et adaptée du socle Bash essentiellement développé par Emmanuel Confrère, éminent DBA Calédonien.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

166 lines
5.5 KiB

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