#!/bin/bash # Ce script fait passer l'application en mode "installation" et "local" (sans ldap) # INPUT args # $1 = platforme (par défaut linux) # Si docker et execution directe (hors conteneur) depuis le repertoire data/ (bind du repertoire docker) # => on rappelle ce meme script avec le CLI docker puis on exit [ -f ../docker-compose.yml ] && (docker exec -it labinvent $0 $* ; true) && exit # Execution SANS docker, ou bien AVEC docker depuis le conteneur echo "IN $(pwd)" # Mac ou Linux ? # Linux MACOS= # Mac #MACOS=1 [[ $1 == "macos" ]] && MACOS=ON # Mode DEBUG (=ON pour activer) # - DEBUG OFF DEBUG= # - DEBUG ON #DEBUG=ON [ $DEBUG ] && echo "DEBUG MODE ON" #[ ! $DEBUG ] && echo "DEBUG MODE OFF" # Nom du script sql sqlscript=./database/set_mode_install # Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente # Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur # Pour cela, il suffit d'executer ces 2 lignes : # cp ce_script.sh ce_script_macosx.sh # sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh if [ ! -f config/app.php ] ; then #if [ ! -f ../config/app.php ] ; then #echo "Vous devez executer ce script depuis le dossier database/" echo "Vous devez executer ce script depuis la racine du projet" exit 1 fi # Get login, pass, dbname, and hostname username=$(grep "/\*d\*/'username'" ./config/app.php | cut -d"'" -f4) password=$(grep "/\*d\*/'password'" ./config/app.php | cut -d"'" -f4) database=$(grep "/\*d\*/'database'" ./config/app.php | cut -d"'" -f4) host=$(grep "/\*d\*/'host'" ./config/app.php | cut -d"'" -f4) #if [[ $DEBUG == 1 ]] ; then if [ $DEBUG ] ; then echo "db: $database" echo "user: $username" echo "pass: $password" echo "host: $host" #exit fi cp -p $sqlscript.sql $sqlscript-build.sql # Execute sql update script if [ $MACOS ] ; then # MacOS only : sed -e "s/_database_/$database/" -i '' $sqlscript-build.sql else # Linux : sed -e "s/_database_/$database/" -i $sqlscript-build.sql fi [ $DEBUG ] && echo "mysql -h $host -u $username -p$password < $sqlscript-build.sql" if [ ! $DEBUG ] ; then mysql $database --user=$username --password=$password -h $host < $sqlscript-build.sql #echo "exec sql" #mysql --user=$username --password=$password -h $host < $sqlscript-build.sql #mysql -h $host -u $username -p$password < $sqlscript-build.sql fi #echo $? #error if [ $? -ne 0 ] ; then echo "Une erreur s'est produite" echo "ABORT !" exit 1 fi [ ! $DEBUG ] && rm $sqlscript-build.sql # Delete cakephp cache #### (EP 20210129) avant tout ca se faisait avec sudo... ####sudo rm ../tmp/cache/models/* chmod -R 777 ./tmp rm ./tmp/cache/models/* > /dev/null 2>&1 rm ./tmp/cache/persistent/* > /dev/null 2>&1 # Rendre accessible a nouveau les dossiers webroot/ et vendor/ ####chmod -R 777 ../tmp ####chmod -R 777 ../vendor chmod -R 777 ./vendor/aferrandini/phpqrcode ####chmod -R 777 ../webroot #img/qrcodes et img/photos : chmod -R 777 ./webroot/img chmod -R 777 ./webroot/files echo echo echo "L'application est passée en mode 'installation'" echo echo "Si ça ne marche pas, il se peut que vous deviez aussi effacer le cache de votre navigateur" echo echo "Maintenant, allez sur le site web pour changer la configuration via la page web dédiée" echo [ $DEBUG ] && (echo "Contenu du script sql $sqlscript-build.sql :" ; echo ; cat $sqlscript-build.sql ; echo)