New file |
0,0 → 1,104 |
#!/bin/bash |
|
# Crée une instance de GTT pour l'année à venir. |
# |
# Nécessite de remplir config.sh à partir de config.defaut.sh. |
# Si un fichier "htaccess" est présent, il sera renommé en ".htaccess" dans le |
# dossier de destination de la nouvelle instance |
# |
# Utilisation : |
# ./clonegtt.sh 2016 trunk clonebdd |
# |
# Mathias - 2015-12-23 |
|
# ligne magique trouvee sur http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in |
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
|
SCRIPTNAME=`basename "$0"` |
|
# date du jour |
DATE=`date +%Y-%m-%d` |
|
# chargement de la config |
. "$SCRIPTDIR/config.sh" |
|
function notice { |
echo "Utilisation: $SCRIPTNAME annee branche [clonebdd]" |
echo " annee: cree une instance de GTT pour l'annee fournie (ex: 2016), dans un nouveau dossier correspondant" |
echo " branche: utilise une branche particuliere du SVN (ex: trunk, branches/v1.2-democrite)" |
echo " clonebdd (optionnel): si mentionne, copiera les donnees (utilisateurs, projets, categories) de l'installation, dont le prefixe est specifie dans config.sh" |
echo "Exemples:" |
echo " $SCRIPTNAME 2016 trunk clonebdd" |
echo " $SCRIPTNAME 2016 branches/v1.2-democrite" |
} |
|
function copie_table { |
REQ="TRUNCATE ${PREFIXE}$1; INSERT INTO ${PREFIXE}$1 SELECT * FROM ${BDD_SOURCEPREFIXE}$1;" |
#echo "$REQ" |
CMD="$CHEMIN_MYSQL/mysql -h$BDD_HOTE -u$BDD_LOGIN -p$BDD_MDP -e \"$REQ\" $BDD_BASE" |
eval "$CMD" |
} |
|
function clone_gtt { |
ANNEE="$1" |
PREFIXE="gtt_${ANNEE}_" |
|
echo "deploiement d'une instance de GTT pour l'ANNEE [$ANNEE]" |
|
# copie du code |
dossier_svn="trunk" |
if [ "$#" -gt 1 ]; then |
echo "recuperation de la branche [$2]"; |
dossier_svn="$2" |
else |
echo "recuperation du [trunk]" |
fi |
svn co "http://svn.tela-botanica.net/svn/applications/gtt/$dossier_svn" "$ANNEE" |
|
# copie du .htaccess |
if [ -e "$SCRIPTDIR/htaccess" ]; then |
echo "copie du .htaccess de reference" |
cp "$SCRIPTDIR/htaccess" "$ANNEE/.htaccess" |
fi |
|
# creation de la config |
echo "creation de la config" |
echo "<?php |
// cree par clonegtt le $DATE |
define('GTT_BDD_NOM', '$BDD_BASE'); |
define('GTT_BDD_DSN', 'mysql://$BDD_LOGIN:$BDD_MDP@$BDD_HOTE/'.GTT_BDD_NOM); |
define('GTT_BDD_PREFIXE', '$PREFIXE'); |
define('GTT_DEBOGAGE', false); |
define('GTT_DEBOGAGE_SQL', false); |
?>" > "$ANNEE/config.inc.php" |
|
# modification des fichiers .sql pour ajouter le prefixe, et insertion dans la base |
# "sort" sert a s'assurer que "installation" est execute avant "maj" @WARNING bancal comme systeme ! |
find "$ANNEE/documentation" -name "*.sql" | sort | while read line; do |
echo "Insertion de $line" |
sed "s/gestion_/${PREFIXE}gestion_/" "$line" > "${line}_${ANNEE}.sql" |
CMD="$CHEMIN_MYSQL/mysql -h$BDD_HOTE -u$BDD_LOGIN -p$BDD_MDP $BDD_BASE < ${line}_${ANNEE}.sql" |
eval $CMD |
rm "${line}_${ANNEE}.sql" |
done |
|
# copie de l'ancienne base vers la nouvelle (configurer) |
if [ "$#" -gt 2 ]; then |
if [ "$3" = "clonebdd" ]; then |
echo "clonage de la base precedente (prefixe [$BDD_SOURCE_PREFIXE])" |
# copies SQL des tables a recuperer |
copie_table "gestion_absence_motif" |
copie_table "gestion_projet" |
copie_table "gestion_projet_categorie" |
copie_table "gestion_utilisateur" |
copie_table "gestion_utilisateur_a_projet" |
copie_table "gestion_utilisateur_statut" |
fi |
fi |
} |
|
if [ "$#" -lt 1 ]; then |
notice |
else |
clone_gtt $@ |
fi |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |