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