Commit f4953d676a81dc3b2e2f892a5c8887ba1675dfe2

Authored by Etienne Pallier
1 parent f4b7c9cd
Exists in master and in 1 other branch dev

modif variables env et adapte installation.sh pour host % si docker...

ADD_NEW_SUPERADMIN_LDAP_USER
... ... @@ -5,7 +5,7 @@
5 5  
6 6 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
7 7 # => on rappelle ce meme script avec le CLI docker puis on exit
8   -if [[ -f ../DOCKER_LABINVENT_START ]] ; then
  8 +if [[ -f ../docker-compose.yml ]] ; then
9 9 #cd ../
10 10 docker exec -it labinvent $0
11 11 exit
... ...
CAKE_SHELL
... ... @@ -2,10 +2,10 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7  
8   -#if [[ -f ../DOCKER_LABINVENT_START ]] ; then
  8 +#if [[ -f ../docker-compose.yml ]] ; then
9 9 ##cd ../
10 10 #docker exec -it labinvent $0
11 11 #exit
... ...
CHANGELOG
... ... @@ -31,6 +31,12 @@ ROADMAP IRAP :
31 31  
32 32  
33 33 -------
  34 +31/03/2021 NEWS#6 (v4.108.18) :
  35 +
  36 +- Installation du logiciel désormais disponible via DOCKER (en quelques petites minutes)
  37 +
  38 +
  39 +-------
34 40 30/11/2020 NEWS#5 (v4.107.21) :
35 41  
36 42 - Liste des matériels beaucoup plus pratique (colonnes plus pertinentes) et filtrage plus efficace
... ... @@ -315,6 +321,13 @@ Commencer à implémenter le nouveau workflow v5 :
315 321 ======= CHANGES =======
316 322  
317 323 -------
  324 +01/04/2021 v4.108.18-3.7.9
  325 + - Prise en compte host "%" pour accès mysql si docker, et localhost si pas docker (ou autre host défini)
  326 + (car host "db" pas reconnu, et host "labinvent.labinventdock_labinvent-network" trop compliqué, et host "%" sécurisé en mode docker puisque dans container)
  327 + - Optimisation scripts accès BD pour mode docker hors container
  328 + - Ajout nouveaux scripts raccourcis DOCKER_LABINVENT_*
  329 +
  330 +-------
318 331 30/03/2021 v4.108.17-3.7.9
319 332 - Ajout scripts connexion BD (client mysql) : CONNECT_TO_MYSQL_AS_/ROOT/USER
320 333 - Ajout script accès shell CakePhp (utile pour requetes BD via ORM) : CAKE_SHELL
... ...
CONNECT_TO_MYSQL_AS_ROOT
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ...
CONNECT_TO_MYSQL_AS_USER
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ... @@ -24,9 +24,10 @@ echo $MYSQL_HOST
24 24  
25 25 # PROD table : labinvent
26 26 mysql $MYSQL_DATABASE -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD
  27 +#mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD
27 28  
28 29 # TEST table : test_labinvent
29   -#mysql test_${MYSQL_DATABASE} -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD
  30 +#mysql test_$MYSQL_DATABASE -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD
30 31  
31 32 #mysql test_labinvent -u labinvent_user -plabinvent --host='db'
32 33 #mysql labinvent -u labinvent_user -plabinvent --host='db'
... ...
DB_EXEC
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ...
INSTALLATION
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ...
PANIC_MODE
... ... @@ -7,8 +7,8 @@
7 7  
8 8 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
9 9 # => on rappelle ce meme script avec le CLI docker puis on exit
10   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0 $1
11   -[ -f ../DOCKER_LABINVENT_START ] && exit
  10 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0 $1
  11 +[ -f ../docker-compose.yml ] && exit
12 12 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
13 13 echo "IN $(pwd)"
14 14  
... ... @@ -16,7 +16,6 @@ echo "IN $(pwd)"
16 16  
17 17  
18 18  
19   -
20 19 # Mac ou Linux ?
21 20 # Linux
22 21 MACOS=
... ... @@ -80,9 +79,12 @@ else
80 79 sed -e "s/_database_/$database/" -i $sqlscript-build.sql
81 80 fi
82 81  
  82 +[ $DEBUG ] && echo "mysql -h $host -u $username -p$password < $sqlscript-build.sql"
83 83 if [ ! $DEBUG ] ; then
  84 + mysql $database --user=$username --password=$password -h $host < $sqlscript-build.sql
84 85 #echo "exec sql"
85   - mysql --user=$username --password=$password -h $host < $sqlscript-build.sql
  86 + #mysql --user=$username --password=$password -h $host < $sqlscript-build.sql
  87 + #mysql -h $host -u $username -p$password < $sqlscript-build.sql
86 88 fi
87 89 #echo $?
88 90 #error
... ...
README.md
... ... @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52  
53 53 --------------------------------------------------------------------------------------------
54 54  
55   -Date: 30/03/2021
56   -Version: v4.108.17-3.7.9
  55 +Date: 01/04/2021
  56 +Version: v4.108.18-3.7.9
57 57  
58 58  
59 59  
... ...
TESTS.sh
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0 $1
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0 $1
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ...
TEST_WEB
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ... @@ -21,6 +21,7 @@ echo
21 21 echo
22 22  
23 23 bin/cake server -p 8765
  24 +#bin/cake server -H 0.0.0.0 -p 8765
24 25  
25 26 mv src/Application.php src/Application.php.OLD
26 27  
... ...
UPDATE
... ... @@ -4,8 +4,8 @@
4 4  
5 5 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
6 6 # => on rappelle ce meme script avec le CLI docker puis on exit
7   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0 $1
8   -[ -f ../DOCKER_LABINVENT_START ] && exit
  7 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0 $1
  8 +[ -f ../docker-compose.yml ] && exit
9 9 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
10 10 echo "IN $(pwd)"
11 11  
... ...
VERSION
... ... @@ -2,8 +2,8 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -[ -f ../DOCKER_LABINVENT_START ] && docker exec -it labinvent $0
6   -[ -f ../DOCKER_LABINVENT_START ] && exit
  5 +[ -f ../docker-compose.yml ] && docker exec -it labinvent $0
  6 +[ -f ../docker-compose.yml ] && exit
7 7 # Execution SANS docker, ou bien AVEC docker depuis le conteneur
8 8 echo "IN $(pwd)"
9 9  
... ...
database/install/DB1_create_databases_prod_and_test_and_users.sql
... ... @@ -61,14 +61,19 @@ CREATE DATABASE IF NOT EXISTS _mydbtest_ DEFAULT CHARACTER SET latin1;
61 61 -- grant all on _mydb_.* to '_mydb_user_'@'localhost' identified by '_mydb_pass_';
62 62 -- host OK POUR DOCKER, mais bon faut deviner le nom...
63 63 -- grant all on _mydb_.* to '_mydb_user_'@'labinvent.labinventdock_labinvent-network' identified by '_mydb_pass_';
64   --- host OK POUR DOCKER, mais pas tres secure :
65   -grant all on _mydb_.* to '_mydb_user_'@'%' identified by '_mydb_pass_';
  64 +-- host OK POUR DOCKER, on pourrait eventuellement utiliser ça...
  65 +-- grant all on _mydb_.* to '_mydb_user_'@'labinvent.%' identified by '_mydb_pass_';
  66 +-- host OK POUR DOCKER, simple, mais pas super secure :
  67 +-- grant all on _mydb_.* to '_mydb_user_'@'%' identified by '_mydb_pass_';
  68 +-- _mydb_host_ = '%' si DOCKER, et 'localhost' si PAS docker (ou autre host défini)
  69 +grant all on _mydb_.* to '_mydb_user_'@'_mydb_host_' identified by '_mydb_pass_';
66 70  
67 71 -- grant all on _mydbtest_.* to 'superadmin'@'localhost' identified by 'superadmin';
68 72 -- grant all on _mydbtest_.* to 'mydb_user'@'localhost' identified by 'mydb_pass';
69 73 -- grant all on _mydbtest_.* to '_mydb_user_'@'_server_name_' identified by '_mydb_pass_';
70 74 -- grant all on _mydbtest_.* to '_mydb_user_'@'localhost' identified by '_mydb_pass_';
71   -grant all on _mydbtest_.* to '_mydb_user_'@'%' identified by '_mydb_pass_';
  75 +-- grant all on _mydbtest_.* to '_mydb_user_'@'%' identified by '_mydb_pass_';
  76 +grant all on _mydbtest_.* to '_mydb_user_'@'_mydb_host_' identified by '_mydb_pass_';
72 77  
73 78 -- Mais, ca serait plus prudent de limiter les droits (au lieu de "grant all"):
74 79 -- grant select,insert,update,delete on _mydb_.* to ...
... ...
database/set_mode_install.sql
1 1 -- Passage en mode INSTALL et LOCAL (sans ldap)
2 2 -- (utile si le logiciel est bloque suite a une mauvaise manip)
3 3  
4   -use _database_;
  4 +-- use _database_;
5 5  
6 6 UPDATE configurations
7 7 SET mode_install = 1,
... ...
database/update/db-update.sh
... ... @@ -2,14 +2,11 @@
2 2  
3 3 # Si execution directe depuis le repertoire data/ (bind du repertoire docker)
4 4 # => on rappelle ce meme script avec le CLI docker puis on exit
5   -if [[ -f ../../../DOCKER_LABINVENT_START ]] ; then
6   - #cd ../
7   - docker exec -it -w /var/www/database/update labinvent $0 $1
8   - exit
9   -fi
  5 +[ -f ../../../docker-compose.yml ] && docker exec -it -w /var/www/database/update labinvent $0 $1
  6 +[ -f ../../../docker-compose.yml ] && exit
  7 +# Execution SANS docker, ou bien AVEC docker depuis le conteneur
10 8 echo "IN $(pwd)"
11 9  
12   -# Execution SANS docker, ou bien AVEC docker depuis le conteneur
13 10  
14 11  
15 12  
... ... @@ -90,7 +87,8 @@ else
90 87 # Linux :
91 88 sed -e "s/database/$database/" -i ./script_sql/$sqlscript_name-build.sql || abort
92 89 fi
93   -mysql --user=$username --password=$password -h $host < ./script_sql/$sqlscript_name-build.sql || abort
  90 +mysql $database --user=$username --password=$password -h $host < ./script_sql/$sqlscript_name-build.sql || abort
  91 +#mysql --user=$username --password=$password -h $host < ./script_sql/$sqlscript_name-build.sql || abort
94 92  
95 93 # Delete temporary file and cakephp cache (-f avoids warning if no file)
96 94 rm -f ./script_sql/$sqlscript_name-build.sql
... ...
database/update/script_sql/db-update-2020-11-04.sql
1   -use database;
  1 +-- use database;
2 2  
3 3  
4 4 -- Ajout des types de documents OBLIGATOIRES dans table type_documents
... ...
database/update/script_sql/db-update-2021-01-28.sql
1   -use database;
  1 +-- use database;
2 2  
3 3  
4 4 -- Renommage de certaines FK mal nommées...
... ...
install/ENV.sample.sh
1   -# - Mode batch (ON) ou interactif (OFF)
2   -MODE_BATCH=ON
3   -#MODE_BATCH=OFF
  1 +# - Mode interactif (true) ou mode batch (false)
  2 +INTER=false
4 3  
5   -# - Mysql root login ? # oui (si pas OFF), non (si OFF)
6   -MYSQL_ROOT_LOGIN=root
7   -#MYSQL_ROOT_LOGIN=OFF
8 4  
9   -# - Pour ajouter donnees IRAP de base (categories...), mettre à ON (sinon mettre à OFF)
10   -INSTALL_DATA_IRAP=ON
11   -#INSTALL_DATA_IRAP=OFF
  5 +# - Pour ajouter donnees IRAP de base (categories...), mettre à true (sinon mettre à false)
  6 +INSTALL_DATA_IRAP=true
12 7  
13 8  
14 9  
... ... @@ -16,12 +11,16 @@ INSTALL_DATA_IRAP=ON
16 11 MYSQL_HOST=localhost
17 12 #MYSQL_HOST=db
18 13  
  14 +# - Mysql root login ? non (si =false), oui (si n'importe quelle autre valeur)
  15 +MYSQL_ROOT_LOGIN=root
  16 +#MYSQL_ROOT_LOGIN=false
  17 +
19 18 # - mysql root pass
20 19 MYSQL_ROOT_PASSWORD=root
21 20 #MYSQL_ROOT_PASSWORD=labinvent
22 21 #MYSQL_ROOT_PASSWORD=''
23 22  
24   -# - mysql database
  23 +# - LabInvent database
25 24 MYSQL_DATABASE=labinvent
26 25 MYSQL_USER=labinvent_user
27 26 MYSQL_PASSWORD=labinvent
... ...
install/installation.sh
1 1 #!/bin/bash
2 2  
3 3 # Mode DEBUG off
4   -DEBUG=
  4 +DEBUG=false
5 5 # Mode DEBUG on
6   -#DEBUG=ON
  6 +#DEBUG=true
  7 +
  8 +$DEBUG && echo "DEBUG MODE IS ON"
  9 +$DEBUG || echo "DEBUG MODE IS OFF"
  10 +
  11 +
7 12  
8 13 # Chemins vers fichier de conf
9 14 cakephp_app_path=./
... ... @@ -11,19 +16,29 @@ config_path=$cakephp_app_path/config
11 16 config_file=$config_path/app.php
12 17 default_config_file=$config_path/app.default.php
13 18  
14   -# Des variables d'environnement peuvent etre passées via le script ENV.sh (s'il existe) :
15   -[ -f ENV.sh ] && source ENV.sh
16   -# Si le script ENV.sh existe
17   -# (ou bien que les variables ont été positionnées dans l'environnement, via Docker par exemple),
18   -# l'installation se fait silencieusement (mode batch).
19   -# Sinon, l'installation passe en mode interactif (questions/réponses)
20   -# Par défaut, mode INTERACTIF (mode BATCH est off) :
21   -INTER=ON
22   -# Si la variable MODE_BATCH est positionnée à 'ON' => on passe en mode BATCH :
23   -[ $MODE_BATCH == ON ] && INTER=
24   -# (Attention, ça marche pas avec simple crochet mais seulement avec double crochets !!!!!!!!)
25   -#[[ -z $MODE_BATCH ]] && INTER=ON
26 19  
  20 +# Par defaut, on considere qu'on utilise docker
  21 +WITH_DOCKER=true
  22 +
  23 +# On teste si les variables d'environnement sont définies
  24 +if [ -z $MYSQL_HOST ] ; then
  25 + # Variables d'env PAS définies, ce qui veut dire qu'on n'utilise pas docker
  26 + WITH_DOCKER=false
  27 + # Si le fichier ENV.sh existe, on le lit pour positionner les variables d'env
  28 + [ -f ENV.sh ] && source ENV.sh
  29 +fi
  30 +
  31 +# Par defaut, on considere qu'on est en mode interactif => execution en posant des questions à l'utilisateur
  32 +# (Si INTER=false dans l'environnement, on passe en mode batch)
  33 +#echo "inter is $INTER"
  34 +[ -z $INTER ] && INTER=true
  35 +
  36 +#echo "inter is $INTER"
  37 +$INTER && echo "Execution en mode INTERACTIF"
  38 +$INTER || echo "Execution en mode BATCH"
  39 +
  40 +#echo $MYSQL_HOST
  41 +#$WITH_DOCKER && echo "DOCKER on"
27 42  
28 43  
29 44 # Le script peut-il continuer et créer les fichiers qui lui sont nécessaires ?
... ... @@ -66,13 +81,13 @@ echo
66 81 cat ../LICENSE
67 82 echo
68 83 echo "J'accepte ces conditions d'utilisation avant de continuer (o/n) :"
69   -if [[ $INTER ]] ; then
  84 +if $INTER ; then
70 85 read rep
71   - [[ -z $rep ]] && rep="n"
  86 + [ -z $rep ] && rep="n"
72 87 [[ $rep != "o" && $rep != "O" ]] && exit
73 88 fi
74 89 echo "Conditions d'utilisation acceptées"
75   -if [[ $INTER ]] ; then
  90 +if $INTER ; then
76 91 echo "[Taper une touche pour continuer]"
77 92 read rep
78 93 fi
... ... @@ -305,8 +320,8 @@ chmod +x VERSION
305 320  
306 321 # Ceci est préconisé par CakePhp (voir https://book.cakephp.org/3/fr/installation.html#permissions)
307 322 # (désactivé par défaut)
308   -DO_SETFACL=0
309   -if [ $DO_SETFACL -eq 1 ]; then
  323 +DO_SETFACL=false
  324 +if $DO_SETFACL ; then
310 325 echo
311 326 echo "Mise à jour des droits des dossiers tmp et logs (doivent etre accessibles a la fois à la console et au serveur web)"
312 327 echo
... ... @@ -384,7 +399,7 @@ cp $default_config_file $config_file
384 399  
385 400 # - Set database ip
386 401 echo
387   -if [[ $INTER ]] ; then
  402 +if $INTER ; then
388 403 echo "Entrez le nom ou l'adresse du serveur MySQL hebergeant la base de donnees (defaut=localhost) :"
389 404 read bddIp
390 405 [[ -z $bddIp ]] && bddIp="localhost"
... ... @@ -396,12 +411,12 @@ echo &quot;==&gt; Adresse du serveur MySql = $bddIp&quot;
396 411 # PROD BD
397 412 sed -e "s/\*d\*\/'host' => 'localhost'/\*d\*\/'host' => '$bddIp'/" -i $config_file
398 413 # TEST BD
399   -sed -e "s/\*t\*\/'host' => 'localhost'/\*d\*\/'host' => '$bddIp'/" -i $config_file
  414 +sed -e "s/\*t\*\/'host' => 'localhost'/\*t\*\/'host' => '$bddIp'/" -i $config_file
400 415  
401 416  
402 417 # - Nom de la BD prod
403 418 echo
404   -if [[ $INTER ]] ; then
  419 +if $INTER ; then
405 420 default="labinvent"
406 421 echo "Entrez le nom de la BD à utiliser pour l'inventaire (defaut=$default) :"
407 422 read answer ; [[ -z $answer ]] && answer=$default
... ... @@ -415,7 +430,7 @@ sed -e &quot;s/&#39;database&#39; =&gt; &#39;database&#39;/&#39;database&#39; =&gt; &#39;$bddName&#39;/&quot; -i $config_file
415 430  
416 431 # - Nom de la BD test
417 432 echo
418   -if [[ $INTER ]] ; then
  433 +if $INTER ; then
419 434 #default="test_labinvent2"
420 435 #default="test_labinvent"
421 436 default=test_${bddName:0:12}
... ... @@ -433,32 +448,32 @@ sed -e &quot;s/&#39;database&#39; =&gt; &#39;test_database&#39;/&#39;database&#39; =&gt; &#39;$bddName_test&#39;/&quot; -i $conf
433 448  
434 449 # - Accès root à Mysql o/n ?
435 450 echo
436   -if [ $INTER ] ; then
  451 +if $INTER ; then
437 452 # PAS admin mysql
438   - MYSQL_ROOT_LOGIN=OFF
  453 + MYSQL_ROOT_LOGIN=false
439 454 echo "Etes-vous administrateur du serveur BD MySql (vous avez un login root) (defaut=o) [o/n] ?"
440 455 read rep
441 456 if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
442   - MYSQL_ROOT_LOGIN=ON # admin mysql
  457 + MYSQL_ROOT_LOGIN=true # admin mysql
443 458 fi
444 459 fi
445   -if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
  460 +if [ $MYSQL_ROOT_LOGIN != false ] ; then
446 461 echo "==> Administrateur de MySql"
447 462 else
448 463 # PAS admin mysql
449 464 echo "==> PAS administrateur de MySql"
450 465 echo "==> La BD '$bddName' doit donc être déjà créée (ainsi que la BD de test) et vous avez un login pour y accéder (sinon, inutile de continuer)"
451   - [ $INTER ] && (echo "Taper une touche pour continuer..." ; read)
  466 + $INTER && (echo "Taper une touche pour continuer..." ; read)
452 467 fi
453   -[ $DEBUG ] && echo "MYSQL_ROOT_LOGIN == $MYSQL_ROOT_LOGIN";
  468 +$DEBUG && echo "MYSQL_ROOT_LOGIN == $MYSQL_ROOT_LOGIN";
454 469  
455 470  
456 471 # - Si admin mysql, entrer le login et pass root (et demander si on doit RE-créer la BD ou pas)
457 472 ##if [ $BD_NOT_YET_CREATED -eq 1 ] ; then
458   -if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
  473 +if [ $MYSQL_ROOT_LOGIN != false ] ; then
459 474 echo
460 475  
461   - if [ $INTER ] ; then
  476 + if $INTER ; then
462 477 #echo "La BD n'existe pas encore, il faut donc la créer, et pour cela j'ai besoin du login admin de mysql"
463 478 echo "- entrez le login privilegie (admin) vous donnant le droit de CREER des bases de donnees"
464 479 echo "(ce login ne sera utilisé qu'une seule fois, pour la creation des bases prod et test, et de l'utilisateur)"
... ... @@ -474,7 +489,7 @@ if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
474 489 fi
475 490 echo "==> SGBD admin login = $bddAdminName"
476 491  
477   - if [ $INTER ] ; then
  492 + if $INTER ; then
478 493 echo
479 494 echo "- entrez le mot de passe de ce login privilegié :"
480 495 read -s bddAdminPass
... ... @@ -483,9 +498,9 @@ if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
483 498 fi
484 499  
485 500 # - Supprimer la BD avant de la créer ?
486   - DROP_DATABASE=ON # par defaut, oui, on drop la BD
  501 + DROP_DATABASE=true # par defaut, oui, on drop la BD
487 502 echo
488   - if [ $INTER ] ; then
  503 + if $INTER ; then
489 504 while : ; do
490 505 echo "Si la BD existe déjà, elle sera supprimée avant d'être créée à nouveau, OK (defaut=O) (O/N) ?"
491 506 read rep
... ... @@ -498,12 +513,12 @@ if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
498 513 if [[ $rep == "O" ]] ; then
499 514 echo "==> La BD sera détruite puis re-créée"
500 515 else
501   - # OFF (pas drop)
502   - DROP_DATABASE=
  516 + # (pas drop)
  517 + DROP_DATABASE=false
503 518 echo "==> Si la BD existe déjà, elle ne sera pas supprimée"
504 519 echo "ATTENTION: la re-création des tables risque de ne pas fonctionner... (il vaut mieux supprimer la BD avant)"
505 520 fi
506   - [ $DEBUG ] && echo "DROP_DATABASE == $DROP_DATABASE";
  521 + $DEBUG && echo "DROP_DATABASE == $DROP_DATABASE";
507 522  
508 523 fi # mysql admin
509 524  
... ... @@ -513,7 +528,7 @@ fi # mysql admin
513 528  
514 529 # -- login
515 530 echo
516   -if [ $INTER ] ; then
  531 +if $INTER ; then
517 532 default=${bddName:0:12}_user
518 533 echo "Entrez le login et le mot de passe du proprietaire de la BD $bddName (à créer ou déjà créé)"
519 534 echo "(login utilisé par le logiciel pour accéder et modifier la BD de production ainsi que la BD de test)"
... ... @@ -530,7 +545,7 @@ sed -e &quot;s/&#39;username&#39; =&gt; &#39;test_db_username&#39;/&#39;username&#39; =&gt; &#39;$bddUserName&#39;/&quot; -i $co
530 545  
531 546 # -- pass
532 547 echo
533   -if [ $INTER ] ; then
  548 +if $INTER ; then
534 549 echo "- mot de passe :"
535 550 read -s bddUserPass
536 551 else
... ... @@ -569,7 +584,7 @@ echo
569 584 # - Test de l'existence ou non de la BD
570 585 #
571 586 # BD existe déjà
572   - BD_NOT_YET_CREATED=
  587 + BD_NOT_YET_CREATED=false
573 588 #output=$(mysql -u$bddUserName -p"$bddUserPass" -h $bddIp -s -N -e "SELECT schema_name FROM information_schema.schemata WHERE schema_name = '${db}'")
574 589 #output=$(mysqlshow -u$bddUserName -p"$bddUserPass" -h$bddIp | grep $bddName)
575 590 # 1) on teste si on peut se connecter à la BD avec le login utilisateur (envoi vers /dev/null pour éviter msg erreur)
... ... @@ -578,20 +593,24 @@ echo
578 593 # (on peut car maintenant on est sûr qu'on n'aura pas de message d'erreur)
579 594 if [[ $? -eq 0 ]] ; then
580 595 output=$(mysql -u$bddUserName -p"$bddUserPass" -h $bddIp -s -N -e "SELECT schema_name FROM information_schema.schemata WHERE schema_name = '${bddName}'")
581   - [[ -z "${output}" ]] && BD_NOT_YET_CREATED=ON # BD n'existe pas encore
  596 + [[ -z "${output}" ]] && BD_NOT_YET_CREATED=true # BD n'existe pas encore
582 597 else
583   - BD_NOT_YET_CREATED=ON # BD n'existe pas encore
  598 + BD_NOT_YET_CREATED=true # BD n'existe pas encore
584 599 fi
585 600  
586 601 # Si l'utilisateur n'est pas admin mysql et qu'on n'arrive pas à accéder à la BD ==> STOP ici
587   - if [[ ! $MYSQL_ROOT_LOGIN && $BD_NOT_YET_CREATED ]] ; then
  602 + #if [[ ! $MYSQL_ROOT_LOGIN && $BD_NOT_YET_CREATED ]] ; then
  603 + #echo $MYSQL_ROOT_LOGIN
  604 + #echo $BD_NOT_YET_CREATED
  605 +
  606 + if [[ $MYSQL_ROOT_LOGIN == false && $BD_NOT_YET_CREATED == true ]] ; then
588 607 echo "La BD $bddName (ou bien votre login) n'existe pas (et vous ne pouvez pas la créer) !"
589 608 echo "==> *** ABORT ***"
590 609 echo
591 610 exit 1
592 611 fi
593 612  
594   - [ $DEBUG ] && echo "BD_NOT_YET_CREATED == $BD_NOT_YET_CREATED";
  613 + $DEBUG && echo "BD_NOT_YET_CREATED == $BD_NOT_YET_CREATED";
595 614  
596 615 # (re-)initialisation du fichier build.sql
597 616 echo "" > ./build.sql
... ... @@ -600,15 +619,18 @@ echo
600 619 # (1) DATABASES et USERS : 1ères instructions de création de la BD et users (prod et test)
601 620 ###if [ $bddAdminName == 'bd_existante' ] ; then
602 621 #if [ $BD_NOT_YET_CREATED -eq 1 ] ; then
603   - if [ $MYSQL_ROOT_LOGIN ] ; then
  622 + if [ $MYSQL_ROOT_LOGIN != false ] ; then
604 623 #cat ./labinvent_2.1_22-05-17.sql > ./build.sql
605 624 #cat ./labinvent_last_version_from_existing_bd.sql > ./build.sql
606 625 # On crée un fichier vide
607 626 ###echo "" > ./build.sql
608   - ###else
609 627 #cat ./create_database.sql > ./build.sql
610 628 cat ./install/DB1_create_databases_prod_and_test_and_users.sql >> ./build.sql
611   - # - Set login & mdp utlisateur application (pour les BD prod et test)
  629 + # - Set host, login & mdp utlisateur application (pour les BD prod et test)
  630 + mydb_host=$bddIp
  631 + $WITH_DOCKER && mydb_host='%'
  632 + sed -e "s/'_mydb_host_'/'$mydb_host'/" -i ./build.sql
  633 + #sed -e "s/'_mydb_host_'/'$bddIp'/" -i ./build.sql
612 634 #sed -e "s/'mydb'/'$bddUserName'/" -i ./build.sql
613 635 #sed -e "s/'mydb_user'/'$bddUserName'/" -i ./build.sql
614 636 sed -e "s/'_mydb_user_'/'$bddUserName'/" -i ./build.sql
... ... @@ -617,7 +639,7 @@ echo
617 639 #sed -e "s/'mydb_pass'/'$bddUserPass'/" -i ./build.sql
618 640 sed -e "s/'_mydb_pass_'/'$bddUserPass'/" -i ./build.sql
619 641 # Si on ne veut pas supprimer la BD avant de la créer, mettre le "drop database" en commentaire
620   - [[ ! $DROP_DATABASE ]] && sed -e "s/DROP DATABASE IF EXISTS/-- DROP DATABASE IF EXISTS/" -i ./build.sql
  642 + $DROP_DATABASE || sed -e "s/DROP DATABASE IF EXISTS/-- DROP DATABASE IF EXISTS/" -i ./build.sql
621 643 fi
622 644 cat ./install/DB1b_use_prod_database.sql >> ./build.sql
623 645 # - Remplacement de "_mydb_" par "$bddName" (pour BD prod et test)
... ... @@ -649,18 +671,18 @@ echo
649 671  
650 672  
651 673 # (5) (optionnel) DATA optionnelles (IRAP only) : ajout données IRAP (catégories, groupes)
652   - if [ $INTER ] ; then
653   - INSTALL_DATA_IRAP=OFF
  674 + if $INTER ; then
  675 + INSTALL_DATA_IRAP=false
654 676 echo
655 677 echo "Voulez-vous installer les donnees propres a l'IRAP (categories, groupes metiers, groupes thematiques) dans la base de donnees ?"
656 678 echo "(OPTIONNEL, c'est juste pour que vous ayez déjà quelques données pour commencer, que vous pourrez remplacer progressivement)"
657 679 echo "(defaut = o) [o/n] ?"
658 680 read rep
659 681 if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
660   - INSTALL_DATA_IRAP=ON
  682 + INSTALL_DATA_IRAP=true
661 683 fi
662 684 fi
663   - if [ $INSTALL_DATA_IRAP == ON ] ; then
  685 + if $INSTALL_DATA_IRAP ; then
664 686 echo "==> Les données IRAP seront installées dans la BDD"
665 687 #cat ./Insert_TablesFunct.sql >> ./build.sql
666 688 #cat ./insert_tables_default_data_IRAP.sql >> ./build.sql
... ... @@ -719,13 +741,13 @@ echo
719 741 ##if [[ $BDD == "O" ]] ; then
720 742 echo
721 743 echo "Je vais maintenant procéder à la création des tables de la BD '$bddName'"
722   - [ $MYSQL_ROOT_LOGIN != OFF ] && echo "(avec création de la BD si elle n'existe pas déjà)"
  744 + [ $MYSQL_ROOT_LOGIN != false ] && echo "(avec création de la BD si elle n'existe pas déjà)"
723 745 echo "Votre serveur Mysql doit etre demarré"
724 746 echo "La commande 'mysql' doit aussi etre accessible:"
725 747 res=`which mysql`
726 748 [[ -z "$res" ]] && exit 1
727 749 echo "==> ok"
728   - if [ $INTER ] ; then
  750 + if $INTER ; then
729 751 echo "...[taper une touche pour continuer]..."
730 752 read rep
731 753 fi
... ... @@ -735,7 +757,7 @@ echo
735 757 ##if [ $bddAdminName == 'bd_existante' ] ; then
736 758 #if [ $BD_NOT_YET_CREATED -eq 1 ] ; then
737 759 # mysql admin ==> on utilise le login root
738   - if [ $MYSQL_ROOT_LOGIN != OFF ] ; then
  760 + if [ $MYSQL_ROOT_LOGIN != false ] ; then
739 761 #echo "mysql --user=$bddAdminName --password="$bddAdminPass" -h $bddIp < ./build.sql"
740 762 mysql --user=$bddAdminName --password="$bddAdminPass" -h $bddIp < ./build.sql
741 763 # PAS admin ==> on utilise le login de l'utilisateur labinvent
... ... @@ -764,7 +786,7 @@ chmod +x PANIC_MODE
764 786  
765 787  
766 788 # On supprime le fichier temporaire ../src/Application.php
767   -rm src/Application.php
  789 +mv src/Application.php src/Application.php.OLD
768 790  
769 791  
770 792  
... ...