Subversion Repositories Applications.gtt

Rev

Rev 171 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/bin/bash

# Installe GTT à partir du code en cours.
#
# 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 :
#               ./installgtt.sh [prefixe]
#
# Mathias - 2015-12-28

# 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 [prefixe]"
        echo "  prefixe (optionnel): prefixe les tables de GTT dans la base de donnees"
        echo "Exemples:"
        echo "  $SCRIPTNAME"
        echo "  $SCRIPTNAME gtt_2016_"
}

function install_gtt {
        PREFIXE="$1"

        echo "installation de GTT - prefixe: [$PREFIXE]"

        # copie du .htaccess
        if [ -e "$SCRIPTDIR/htaccess" ]; then
                echo "copie du .htaccess de reference"
                cp "$SCRIPTDIR/htaccess" "../.htaccess"
        fi

        # creation de la config
        echo "creation de la config"
        echo "<?php
// cree par installgtt le $DATE
define('GTT_AUTH_SESSION_NOM', 'gtt_auth_$PREFIXE');
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);
?>" > "../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 "../documentation" -name "*.sql" | sort | while read line; do
                echo "Insertion de $line"
                sed "s/gestion_/${PREFIXE}gestion_/" "$line" > "${line}_${PREFIXE}.sql"
                CMD="$CHEMIN_MYSQL/mysql -h$BDD_HOTE -u$BDD_LOGIN -p$BDD_MDP $BDD_BASE < ${line}_${PREFIXE}.sql"
                eval $CMD
                rm "${line}_${PREFIXE}.sql"
        done
}

if [ "$1" = "help" ]; then
        notice
else
        install_gtt $@
fi