#!/bin/bash
##########################################################
#
# Eole NG - 2010
# Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
# Licence CeCill  http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html
# eole@ac-dijon.fr
#
# Gestion des modules en mode dialogue
# avec les comptes système eole, eole2
#
##########################################################

# un seul manage ?
pmanage=`pgrep manage-eole`
nbmanage=`echo $pmanage | wc -w`

# fichiers temporaires
temp="/tmp/InBox-Eol-"
tempfile="$temp$$"

TitreGen="Eole - Gestion du Serveur"

##########################################################
# Fonctions reprises de FonctionsEole
##########################################################

MenuBox()
{
#${1="Votre Saisie"}
#${2="Saisie"}
NBlignes=${NBlignes=5}
Menu="$3"
dialog $NOMOUSE1 --backtitle "$TitreGen" \
       --aspect 45 --clear \
       --menu "$1" 16 50 $NBlignes \
         $Menu 2> $tempfile
retval=$?
case $retval in
  0)
     eval $2="`cat $tempfile`";;
  1)  # Cancel
    eval $2="CANCEL";;
  255)  # ESC
    if test -s $tempfile ;
    then
    eval $2=`cat $tempfile`
    else
      eval $2="ESC"
    fi
    ;;
esac
}

OkBox()
{
dialog $NOMOUSE1 --backtitle "$TitreGen" \
       --aspect 45 --cancel-label Abandon\
       --msgbox "$1" 0 0
}

QuestionBox()
{
#${1=Votre Saisie"}
#${2="Saisie"}
dialog $NOMOUSE1 --backtitle "$TitreGen" \
       --aspect 45 --clear \
       --yesno "$1" 16 50
retval=$?
case $retval in
  0)
     eval $2="OUI";;
  1)  # Cancel
    eval $2="NON";;
  255)  # ESC
      eval $2="ESC" ;;
esac
}

Entree(){
echo
echo "Tapez <Entrée>"
read Bidon
}

CleanExit(){
echo "Au revoir !"
rm -f $tempfile
exit $1
}

##########################################################
# Programme principal
##########################################################

if [ $nbmanage -gt 1 ]
then
        MenuBox "D'autres instances de manage-eole ont été détectées" Rep "1 Quitter_sans_tuer 2 Quitter_et_tuer"
        rm -f "$temp*"
        if [ "$Rep" == "2" ]
        then
                for pid in $pmanage
                do
                        kill -9 $pid
                done
        fi
        CleanExit 0
fi

OkBox "Administration EOLE\n\nPour Vous Deplacer sur l'Ecran\nUtiliser votre Souris\nOu la touche tabulation.\n\n"

Rep=""
while [ 1 ]
do
# FIXME/TODO : ajouter des entrées de menu !
MenuBox "Votre Choix"  Rep "1 Diagnostic 2 Reconfiguration 3 Paquets_en_Maj 4 Mise_A_Jour 8 Redemarrer_Serveur 9 Arret_Serveur ! Shell_Linux  Q Quitter"

if [ "$Rep" == "CANCEL" ]
then
        CleanExit 1
fi

case $Rep in
        1)
        echo "En cours ..."
        sudo /usr/bin/diagnose
        Entree
        ;;
        2)
        sudo /usr/bin/reconfigure
        Entree
        ;;
        3)
        sudo /usr/bin/Query-Auto
        Entree
        ;;
        4)
        sudo /usr/bin/Maj-Auto
        Entree
        ;;
        # TODO : pouvoir inclure des entrées venant d'ailleurs ;)
        #5)
        #sudo /usr/share/eole/Maj-blacklist.sh
        #Entree
        #;;
        8)
        QuestionBox "Vous avez demandé le redémarrage du serveur\nEtes vous sur ?" Rep
        if [ "$Rep" == "OUI" ]
        then
        sudo /sbin/reboot
        sleep 1
        CleanExit 0
        fi
        ;;
        9)
        QuestionBox "Vous avez demandé un arret total du serveur\nEtes vous sur ?" Rep
        if [ "$Rep" == "OUI" ]
        then
        sudo /sbin/halt -p
        sleep 1
        CleanExit 0
        fi
        ;;
        !)
        echo "\"exit\" ou \"Ctrl + d\" pour revenir au Menu"
        /bin/bash
        ;;
        Q)
        CleanExit 0
        ;;

esac
done
