PANIC_MODE 3.32 KB
#!/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)