2017-07-21 18:44:49 +11:00
#!/bin/bash
#
2017-07-22 10:55:47 +11:00
# Script d'installation du socle Bash
2017-07-21 18:44:49 +11:00
#
2017-07-22 10:55:47 +11:00
# 21/07/2017 - Doug Le Tough / Tetalab
2017-07-21 18:44:49 +11:00
#
2017-07-22 10:55:47 +11:00
########################################################################
#
# Fonctions
#
########################################################################
2017-07-21 18:44:49 +11:00
function exit_on_error
{
ERROR = " $@ "
echo -e " \033[91m*** ${ ERROR } ***\033[0m "
exit 1
}
2017-07-22 10:55:47 +11:00
function continue_on_ok
{
echo -e "\033[92m[OK]\033[0m"
}
########################################################################
#
# Contrôles
#
########################################################################
2017-07-21 18:44:49 +11:00
if [ ! $( id -u) -eq 0 ] ; then
exit_on_error "Ce script doit être exécuté par l'utilisateur root"
fi
2017-07-22 10:55:47 +11:00
PKG_DIR = $( dirname $0 )
PKG_INSTALL_CONF = ${ PKG_DIR } /conf/install_init.conf
PKG_SOCLE_INIT_CONF = ${ PKG_DIR } /conf/shell-env/profile_init.env
if [ ! -r ${ PKG_INSTALL_CONF } ] || [ ! -r ${ PKG_SOCLE_INIT_CONF } ] ; then
exit_on_error " Erreur lors de l'initialisation de l'environnement d'installation. Vérifier les permissions sur les fichiers ${ PKG_INSTALL_CONF } et ${ PKG_SOCLE_INIT_CONF } "
fi
########################################################################
#
# Main
#
########################################################################
source ${ PKG_INSTALL_CONF }
2017-07-22 13:53:34 +11:00
source ${ PKG_SOCLE_INIT_CONF } 2>/dev/null
2017-07-22 10:55:47 +11:00
echo -e "\033[93mInstallation du socle Bash:\033[0m"
echo -e " \033[93m * Répertoire racine: ${ NC_EXPL_ROOT } \033[0m "
2017-07-21 18:44:49 +11:00
echo -e "\033[93m * Création des répertoires:\033[0m"
2017-07-22 10:55:47 +11:00
# Création des répertoires de destination
2017-07-21 18:44:49 +11:00
for DIR in $NC_EXPL_LIB $NC_EXPL_BIN $NC_EXPL_LOG $NC_EXPL_HST $NC_EXPL_CPT $NC_EXPL_TMP $NC_EXPL_DAT $NC_EXPL_MOD $NC_EXPL_CFG $NC_EXPL_MSG $NC_EXPL_MAN ;
do
2017-07-22 22:31:12 +11:00
echo -en " * ${ DIR } "
2017-07-21 18:44:49 +11:00
sudo mkdir -p ${ DIR } ;
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la création des répertoires"
fi
2017-07-22 10:55:47 +11:00
continue_on_ok
2017-07-21 18:44:49 +11:00
done
2017-07-22 10:55:47 +11:00
# Installation des fichiers de profile
echo -en " \033[93m * Création du fichier de profile dans ${ PROFILE_DIR } \033[0m "
cat << EOF > ${PROFILE _DIR} /${ PROFILE_FILE }
NC_EXPL_ROOT = ${ NC_EXPL_ROOT }
export NC_EXPL_ROOT
source \$ { NC_EXPL_ROOT} /conf/shell-env/profile_init.env
EOF
2017-07-21 18:44:49 +11:00
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
2017-07-22 10:55:47 +11:00
exit_on_error "Erreur lors de la création du fichier de profile"
2017-07-21 18:44:49 +11:00
fi
2017-07-22 18:15:38 +11:00
chmod +x ${ PROFILE_DIR } /${ PROFILE_FILE }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error " Erreur lors de l'application des permissions sur ${ PROFILE_DIR } / ${ PROFILE_FILE } "
fi
2017-07-22 10:55:47 +11:00
continue_on_ok
2017-07-21 18:44:49 +11:00
2017-07-22 10:55:47 +11:00
# Installation des fichiers de configuration
echo -en " \033[93m * Copie des fichiers de configuration dans ${ NC_EXPL_CFG } \033[0m "
cp -R ${ PKG_DIR } /conf/* ${ NC_EXPL_CFG }
2017-07-21 18:44:49 +11:00
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la copie des fichiers de configuration"
fi
2017-07-22 10:55:47 +11:00
continue_on_ok
2017-07-21 18:44:49 +11:00
2017-07-22 10:55:47 +11:00
# Installation des bibliothèques
echo -en " \033[93m * Copie des bibliothèques dans ${ NC_EXPL_LIB } \033[0m "
cp -R ${ PKG_DIR } /lib/* ${ NC_EXPL_LIB }
2017-07-21 18:44:49 +11:00
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la copie des bibliothèques"
fi
2017-07-22 10:55:47 +11:00
continue_on_ok
2017-07-21 18:44:49 +11:00
2017-07-22 10:55:47 +11:00
# Installation des scripts
SCRIPTS_NUM = $( find ${ PKG_DIR } /bin/ -type f | wc -l)
2017-07-22 13:53:34 +11:00
if [ ! ${ SCRIPTS_NUM } -eq 0 ] ; then
2017-07-22 10:55:47 +11:00
echo -en " \033[93m * Copie des scripts dans ${ NC_EXPL_BIN } \033[0m "
cp -R ${ PKG_DIR } /bin/* ${ NC_EXPL_BIN }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la copie des scripts"
fi
continue_on_ok
2017-07-21 18:44:49 +11:00
fi
2017-07-22 14:58:30 +11:00
# Installation des fichiers msg relatifs aux scripts
MSGS_NUM = $( find ${ PKG_DIR } /msg/ -type f | wc -l)
if [ ! ${ MSGS_NUM } -eq 0 ] ; then
echo -en " \033[93m * Copie des fichiers .msg dans ${ NC_EXPL_MSG } \033[0m "
cp -R ${ PKG_DIR } /msg/* ${ NC_EXPL_MSG }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la copie des fichiers .msg"
fi
continue_on_ok
fi
2017-07-22 15:36:57 +11:00
2017-07-22 18:26:03 +11:00
# Installation des fichiers modèles
TEMPLATES_NUM = $( find ${ PKG_DIR } /mod/ -type f | wc -l)
if [ ! ${ TEMPLATES_NUM } -eq 0 ] ; then
echo -en " \033[93m * Copie des fichiers modèles dans ${ NC_EXPL_MOD } \033[0m "
cp -R ${ PKG_DIR } /mod/* ${ NC_EXPL_MOD }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors de la copie des fichiers modèles"
fi
continue_on_ok
fi
2017-07-22 15:36:57 +11:00
# Gestion des droits et permissions
echo -en "\033[93m * Application des droits sur les répertoires:\033[0m "
chown -R ${ ADMIN_USER } :${ ADMIN_GROUP } ${ NC_EXPL_ROOT }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error "Erreur lors l'application des droits"
fi
continue_on_ok
echo -e "\033[93m * Application des permissions sur les répertoires:\033[0m "
for DIR in cpt bin conf dat lib man mod msg
do
echo -en " * ${ NC_EXPL_ROOT } / ${ DIR } "
chmod -R 550 ${ NC_EXPL_ROOT } /${ DIR }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error " Erreur lors l'application des droits sur ${ NC_EXPL_ROOT } / ${ DIR } "
fi
continue_on_ok
done
for DIR in cpt hist log tmp
do
echo -en " * ${ NC_EXPL_ROOT } / ${ DIR } "
chmod -R 770 ${ NC_EXPL_ROOT } /${ DIR }
RET_VAL = $?
if [ ! ${ RET_VAL } -eq 0 ] ; then
exit_on_error " Erreur lors l'application des droits sur ${ NC_EXPL_ROOT } / ${ DIR } "
fi
continue_on_ok
done