89 lines
2.1 KiB
Bash
Executable File
89 lines
2.1 KiB
Bash
Executable File
#!/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
|