envole/src/envole-1.0/envole.sh

257 lines
8.3 KiB
Bash
Raw Normal View History

2023-11-02 14:22:16 +01:00
#!/bin/bash
#1 : action = default up
#2 : service = optionnel
2023-11-02 17:32:25 +01:00
# Fusionner l'ensemble des fichier .env en un seul
rm -f ./.env.local
cat ./env/.env* >> ./.env.local
2023-11-03 14:11:23 +01:00
. ./.env.local
# on remplace les valeur reprise dans les autres .env car podman interprète mal
#while IFS= read -r match; do
# eval "val=\${$match}"
# echo ${ADMIN_PASSWORD}
# echo ${match}
# echo ${!match}
# echo $val
# sed -i "s/${match}/${val}/g" ./.env.local
#done < <(grep -oP '\$\{\w+\}' ./.env.local)
sed -i 's#${ADMIN_PASSWORD}#'${ADMIN_PASSWORD}'#g' ./.env.local
sed -i 's#${ADMIN_USER}#'${ADMIN_USER}'#g' ./.env.local
sed -i 's#${CAS_HOST}#'${CAS_HOST}'#g' ./.env.local
sed -i 's#${CAS_PORT}#'${CAS_PORT}'#g' ./.env.local
sed -i 's#${CAS_USER}#'${CAS_USER}'#g' ./.env.local
sed -i 's#${CAS_PASSWORD}#'${CAS_PASSWORD}'#g' ./.env.local
sed -i 's#${LDAP_SERVICE_NAME}#'${LDAP_SERVICE_NAME}'#g' ./.env.local
sed -i 's#${LDAP_ADMIN_USERNAME}#'${LDAP_ADMIN_USERNAME}'#g' ./.env.local
sed -i 's#${LDAP_BASEDN}#'${LDAP_BASEDN}'#g' ./.env.local
sed -i 's#${LDAP_PASSWORD}#'${LDAP_PASSWORD}'#g' ./.env.local
sed -i 's#${LDAP_USER}#'${LDAP_USER}'#g' ./.env.local
sed -i 's#${LDAP_PORT}#'${LDAP_PORT}'#g' ./.env.local
sed -i 's#${MARIADB_SERVICE_NAME}#'${MARIADB_SERVICE_NAME}'#g' ./.env.local
sed -i 's#${MARIADB_USER}#'${MARIADB_USER}'#g' ./.env.local
sed -i 's#${MARIADB_PASSWORD}#'${MARIADB_PASSWORD}'#g' ./.env.local
sed -i 's#${ADMINER_ACTIVATE}#'${ADMINER_ACTIVATE}'#g' ./.env.local
sed -i 's#${ADMINER_URL}#'${ADMINER_URL}'#g' ./.env.local
sed -i 's#${PHPLDAPADMIN_ACTIVATE}#'${PHPLDAPADMIN_ACTIVATE}'#g' ./.env.local
sed -i 's#${PHPLDAPADMIN_URL}#'${PHPLDAPADMIN_URL}'#g' ./.env.local
sed -i 's#${NEXTCLOUD_ACTIVATE}#'${NEXTCLOUD_ACTIVATE}'#g' ./.env.local
sed -i 's#${NEXTCLOUD_URL}#'${NEXTCLOUD_URL}'#g' ./.env.local
2023-11-02 17:32:25 +01:00
# Include
2023-11-03 14:11:23 +01:00
. .env
2023-11-02 14:22:16 +01:00
. ./misc/tools/e-ihm.sh
. ./env/.env
. ./env/.env.local
2023-11-02 17:32:25 +01:00
# Start script
2023-11-02 14:22:16 +01:00
clear
BigTitle "ENVOLE"
#===========================================================================================================================================
#== STOP ===================================================================================================================================
#===========================================================================================================================================
#1 = service to stop if null all service
stop() {
Title "STOP"
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN stop $1
2023-11-02 14:22:16 +01:00
}
#===========================================================================================================================================
#== UPSERVICE ==============================================================================================================================
#===========================================================================================================================================
#1 = service to up
wait_for_container() {
container_id="envole-$1"
2023-11-03 14:11:23 +01:00
container_name="$($PODBIN inspect "${container_id}" --format '{{ .Name }}')"
2023-11-02 14:22:16 +01:00
waiting_done="false"
while [[ "${waiting_done}" != "true" ]]; do
2023-11-03 14:11:23 +01:00
container_state="$($PODBIN inspect "${container_id}" --format '{{ .State.Status }}')"
2023-11-02 14:22:16 +01:00
if [[ "${container_state}" == "running" ]]; then
2023-11-03 14:11:23 +01:00
health_status="$($PODBIN inspect "${container_id}" --format '{{ .State.Health.Status }}')"
2023-11-02 14:22:16 +01:00
if [[ ${health_status} == "healthy" ]]; then
waiting_done="true"
fi
else
waiting_done="true"
fi
sleep 1;
done;
}
upservice(){
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN up -d $1
2023-11-02 14:22:16 +01:00
wait_for_container $1
}
#===========================================================================================================================================
#== UP =====================================================================================================================================
#===========================================================================================================================================
#1 = service to up if null all service
up(){
# Stop du ou des services
stop $1
2023-11-02 17:32:25 +01:00
2023-11-02 14:22:16 +01:00
# MARIADB
Title "MARIADB"
upservice $MARIADB_SERVICE_NAME
echo
# CREATE BDD
if [[ $CAS_ACTIVATE == 1 && $CAS_LOCAL == 1 ]]
then
EchoVert ${CAS_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /envole/init.sh $CAS_SERVICE_NAME
2023-11-02 14:22:16 +01:00
fi
if [[ $NINEGATE_ACTIVATE == 1 && $NINEGATE_LOCAL == 1 ]]
then
EchoVert ${NINEGATE_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /envole/init.sh $NINEGATE_SERVICE_NAME
2023-11-02 14:22:16 +01:00
fi
if [[ $NEXTCLOUD_ACTIVATE == 1 && $NEXTCLOUD_LOCAL == 1 ]]
then
EchoVert ${NEXTCLOUD_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /envole/init.sh $NEXTCLOUD_SERVICE_NAME
2023-11-02 14:22:16 +01:00
fi
# OPENLDAP
if [[ $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]]
then
Title ${LDAP_SERVICE_NAME^^}
2023-11-02 16:37:13 +01:00
mkdir -p ./volume/openldap/data
chmod a+wr ./volume/openldap/data
2023-11-03 14:11:23 +01:00
#$PODCOMPOSEBIN up -d $LDAP_SERVICE_NAME
2023-11-02 14:22:16 +01:00
upservice $LDAP_SERVICE_NAME
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $LDAP_SERVICE_NAME /envole/init.sh
2023-11-02 14:22:16 +01:00
fi
# CAS
if [[ $CAS_ACTIVATE == 1 && $CAS_LOCAL == 1 ]]
then
Title ${CAS_SERVICE_NAME^^}
upservice $CAS_SERVICE_NAME
fi
# SERVICES
Title "UP"
if [[ -z "$1" ]]
then
if [[ $NINEGATE_ACTIVATE == 1 && $NINEGATE_LOCAL == 1 ]]
then
EchoVert ${NINEGATE_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN up -d $NINEGATE_SERVICE_NAME
#upservice ${NINEGATE_SERVICE_NAME}
2023-11-02 14:22:16 +01:00
echo
fi
if [[ $NEXTCLOUD_ACTIVATE == 1 && $NEXTCLOUD_LOCAL == 1 ]]
then
ctrlUpdate ${NEXTCLOUD_SERVICE_NAME}
EchoVert ${NEXTCLOUD_SERVICE_NAME^^}
upservice ${NEXTCLOUD_SERVICE_NAME}
echo
fi
if [[ $ADMINER_ACTIVATE == 1 && $ADMINER_LOCAL == 1 ]]
then
EchoVert ${ADMINER_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN up -d ${ADMINER_SERVICE_NAME}
2023-11-02 14:22:16 +01:00
echo
fi
if [[ $PHPLDAPADMIN_ACTIVATE == 1 && $PHPLDAPADMIN_LOCAL == 1 ]]
then
EchoVert ${PHPLDAPADMIN_SERVICE_NAME^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN up -d ${PHPLDAPADMIN_SERVICE_NAME}
2023-11-02 14:22:16 +01:00
echo
fi
2023-11-03 14:11:23 +01:00
if [[ $NINEAPACHE_ACTIVATE == 1 && $NINEAPACHE_LOCAL == 1 ]]
then
EchoVert ${NINEAPACHE_SERVICE_NAME^^}
$PODCOMPOSEBIN up -d ${NINEAPACHE_SERVICE_NAME}
echo
fi
2023-11-02 14:22:16 +01:00
else
EchoVert ${1^^}
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN up -d $1
2023-11-02 14:22:16 +01:00
fi
}
#===========================================================================================================================================
#== MAIN ===================================================================================================================================
#===========================================================================================================================================
if [[ $1 == "up" || $1 == "" ]]
then
up $2
elif [[ $1 == "stop" ]]
then
stop $2
elif [[ $1 == "bash" ]]
then
if [[ -z $2 ]]
then
EchoRouge "Vous devez precisez un service"
EchoRouge "envole.sh bash monservice"
else
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $2 "/bin/bash"
2023-11-02 14:22:16 +01:00
fi
elif [[ $1 == "destroy" ]]
then
if [[ -z $2 ]]
then
EchoRouge "Vous devez precisez un service"
EchoRouge "envole.sh bash monservice"
else
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN down $2
$PODCOMPOSEBIN rm $2
echo $2
echo $LDAP_SERVICE_NAME
2023-11-02 14:22:16 +01:00
if [[ "$2" == "$LDAP_SERVICE_NAME" && $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]]
then
sudo rm -rf volume/openldap/data
mkdir volume/openldap/data
chmod a+w volume/openldap/data -R
chmod a+r volume/openldap/data -R
fi
if [[ "$2" == "$CAS_SERVICE_NAME" && $CAS_ACTIVATE == 1 && $CAS_LOCAL == 1 ]]
then
Question_ouinon "Souhaitez-vous supprimer la BDD associé à $2 ?"
if [ "$?" = 0 ]
then
2023-11-03 14:11:23 +01:00
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /envole/delete.sh $CAS_SERVICE_NAME
2023-11-02 14:22:16 +01:00
fi
fi
fi
elif [[ $1 == "env" ]]
then
2023-11-03 14:11:23 +01:00
EchoVert Fichier .env.local regénéré
2023-11-02 14:22:16 +01:00
fi
echo
2023-11-02 17:30:24 +01:00
echo