#!/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 # # Le répertoire de ce script: SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" source "$SCRIPT_DIR/config.sh" source "$SCRIPT_DIR/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