#!/bin/bash

#
# ScoDoc: suppression d'un departement
#
# Ce script supprime la base de donnees ScoDoc d'un departement
# *** le departement doit au prealable avoir été supprime via l'interface web ! ***
#
# Ne fonctionne que pour les configurations "standards" (dbname=xxx)
#
# Il doit être lancé par l'utilisateur unix root dans le repertoire .../tools
#                          ^^^^^^^^^^^^^^^^^^^^^
# E. Viennet, Sept 2008
#


source config.sh
source utils.sh

check_uid_root "$0"
usage() {
  echo "$0 [-n DEPT]"
  echo "(default to interactive mode)"
  exit 1
}
[ $# = 0 ] || [ $# = 2 ] || usage
if [ "$1" = "-n" ]
then
  interactive=0
  if [ $# -lt 2 ]
  then
    usage
  fi
  DEPT=$2
else
  interactive=1
  echo
  echo "Ce script supprime la base de donnees ScoDoc d'un departement"
  echo
  echo "Attention: le departement doit au prealable avoir ete supprime via l'interface web !"
  echo "faites le AVANT d'executer ce script !!!"
  echo
  echo -n "Nom du departement a supprimer (un mot sans ponctuation, exemple \"Info\"): "
  read -r DEPT
fi

if [[ ! "$DEPT" =~ ^[A-Za-z0-9]+$ ]]
then
 echo "Nom de departement invalide !"
 exit 1
fi
export DEPT

cfg_pathname="${SCODOC_VAR_DIR}/config/depts/$DEPT".cfg

if [ -e "$cfg_pathname" ]
then
  # arret de ScoDoc
  scodocctl stop
  
  # suppression de la base postgres
  db_name=$(sed '/^dbname=*/!d; s///;q' < "$cfg_pathname")
  if su -c "psql -lt" "$POSTGRES_SUPERUSER" | cut -d \| -f 1 | grep -wq "$db_name"
  then
    echo "Suppression de la base postgres $db_name ..."
    su -c "dropdb $db_name" "$POSTGRES_SUPERUSER" || terminate "ne peux supprimer base de donnees $db_name"
  else
    echo "la base postgres $db_name n'existe pas."
  fi
  # suppression du fichier de config
  /bin/rm -f "$cfg_pathname" || terminate "Ne peux supprimer $cfg_pathname"
  # relance ScoDoc
  if [ "$interactive" = 1 ]
  then
    echo -n "Demarrer le serveur ScoDoc ? (y/n) [n]"
    read -r ans
    if [ "$(norm_ans "$ans")" = 'Y' ]
    then
       scodocctl start
    fi
  fi
  exit 0
else
  echo 'Attention: pas de configuration trouvee pour "'"$DEPT"'"'
  echo " fichier cherché: $cfg_pathname"
  echo " => ne fait rien."
  exit 0
fi