PDMI/conf.sh
2019-04-29 22:33:38 +02:00

156 lines
2.8 KiB
Bash

#!/bin/sh
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_HELP=2}
: ${DIALOG_EXTRA=3}
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}
DIALOG=dialog
CONFIG_VARS="DATABASE_URI"
set_env_var () {
exec 3>&1
source .env
load_config
local value=$($DIALOG \
--backtitle "Configuration" \
--title $1 \
--inputbox "Veuillez insérez la nouvelle valeur de la variable ${1}:" \
0 0 \
${!1} \
2>&1 1>&3)
local exit_status=$?
exec 3>&-
close $exit_status
export $1=$value
save_config
}
close () {
case $1 in
$DIALOG_CANCEL)
exit;;
$DIALOG_ESC)
exit;;
esac
}
load_config () {
source .env
}
save_config () {
export -p | grep -E "(${CONFIG_VARS})=" > .env
}
bdd_config () {
exec 3>&1
local selection=$($DIALOG \
--backtitle "Base de donnée" \
--menu "Que souhaitez vous faire?" \
0 0 0 \
"1" "manage db init" \
"2" "manage db migrate" \
"3" "manage db upgrade" \
2>&1 1>&3)
local exit_status=$?
exec 3>&-
close $exit_status
source .env
case $selection in
1)
pipenv run python manage.py db init;;
2)
pipenv run python manage.py db migrate;;
3)
pipenv run python manage.py db upgrade;;
esac
}
add_super_admin () {
exec 3>&1
local utilisateur=$($DIALOG \
--backtitle "Utilitaires" \
--title "Administrateurs" \
--inputbox "Entrez le mail de l'utilisateur que vous voulez passer en superadministrateur" \
0 0 \
"" \
2>&1 1>&3)
local exit_status=$?
exec 3>&-
close $exit_status
source .env
pipenv run python manage.py set_superadmin -m "${utilisateur}"
exit
}
configuration () {
exec 3>&1
local selection=$($DIALOG \
--backtitle "Configuration" \
--menu "Quelle variable modifier?" \
0 0 0 \
"1" "DATABASE_URI" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
close $exit_status
case $selection in
1)
set_env_var "DATABASE_URI";;
esac
}
utilitaires () {
exec 3>&1
selection=$($DIALOG \
--backtitle "Utilitaires" \
--menu "Que voulez vous faire?" \
0 0 0 \
"1" "Ajouter un superadministrateur" \
"2" "Installation de pipenv" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
close $exit_status
case $selection in
1)
add_super_admin;;
2)
pipenv install;;
esac
}
while true; do
exec 3>&1
selection=$($DIALOG \
--backtitle "Configuration" \
--menu "Que souhaitez vous faire?" \
0 0 0 \
"1" "Gestion de la base de donnée" \
"2" "Configuration" \
"3" "Utilitaires" \
"4" "Démarre le serveur" \
"5" "Quitter" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
close $exit_status
case $selection in
1)
bdd_config;;
2)
configuration;;
3)
utilitaires;;
4)
source .env
pipenv run gunicorn --bind 0.0.0.0:5000 wsgy;;
5)
exit;;
esac
done