PANIC_MODE
3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/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)