diff --git a/bin/expl_refresh_socle_bash.sh b/bin/expl_refresh_socle_bash.sh index 81c0f06..ac294ea 100755 --- a/bin/expl_refresh_socle_bash.sh +++ b/bin/expl_refresh_socle_bash.sh @@ -4,7 +4,7 @@ # Auteur : Doug Le Tough # Date : 23-07-2017 # Version : 1.0.0 -# Objet : Permet la mise à jour de l'insallation du socle bash +# Objet : Permet la mise à jour de l'installation du socle bash # sur les VM du Tetalab # #------------------------------------------------------------------------------------------------------------------ @@ -25,7 +25,7 @@ #------------------------------------------------------------------------------------------------------------------ # Liste des paramètres de configuration: # -# SOCLE_BASE_DIR=/home/asr/ +# SOCLE_DIR=/home/asr/ # SOCLE_GIT_URL=ssh://git@tetalab.org:2213/tetalab/socle_bash # TETALAB_VM[0]=jimmy.local.tetalab.org # TETALAB_VM[1]=billy.local.tetalab.org diff --git a/bin/expl_refresh_thsf_site.sh b/bin/expl_refresh_thsf_site.sh new file mode 100644 index 0000000..745f015 --- /dev/null +++ b/bin/expl_refresh_thsf_site.sh @@ -0,0 +1,166 @@ +#!/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 diff --git a/conf/expl_refresh_socle_bash.conf b/conf/expl_refresh_socle_bash.conf index bd6b049..5666f0d 100644 --- a/conf/expl_refresh_socle_bash.conf +++ b/conf/expl_refresh_socle_bash.conf @@ -1,5 +1,5 @@ SOCLE_DIR=/home/asr/socle_bash -SOCLE_GIT_URL=ssh://git@tetalab.org:2213/tetalab/socle_bash +SOCLE_GIT_URL=ssh://git@jimmy/tetalab/socle_bash TETALAB_VM[0]=jimmy.local.tetalab.org TETALAB_VM[1]=billy.local.tetalab.org TETALAB_VM[2]=marian.local.tetalab.org diff --git a/conf/expl_refresh_thsf_site.conf b/conf/expl_refresh_thsf_site.conf new file mode 100644 index 0000000..d3ec7fa --- /dev/null +++ b/conf/expl_refresh_thsf_site.conf @@ -0,0 +1,5 @@ +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 diff --git a/msg/expl_refresh_thsf_site.msg b/msg/expl_refresh_thsf_site.msg new file mode 100644 index 0000000..8e0357a --- /dev/null +++ b/msg/expl_refresh_thsf_site.msg @@ -0,0 +1,2 @@ +2 | erreur | stop | ${ERROR} +3 | erreur | continu | ${ERROR}