Commit d757ce229ddb398d96a07316ad8d78cd18a3fed2

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

Amélioration script UPDATE

Ajout de la mise à jour auto des plugins php (dans vendor/)
Showing 2 changed files with 82 additions and 37 deletions   Show diff stats
install/installation.sh
... ... @@ -7,24 +7,16 @@ INSTALL_DATA_IRAP=1
7 7  
8 8 # Le script peut-il continuer et créer les fichiers qui lui sont nécessaires ?
9 9 access_path=`dirname $0`
10   -echo
11   -if [ -r "$access_path" ]; then
12   - if [ -w "$access_path" ]; then
13   - if [ -x "$access_path" ]; then
14   - echo "Vous avez les droits suffisants sur ce repertoire pour exécuter ce script"
15   - else
16   - echo "Veuillez relancer le script en root"
17   - exit 1
18   - fi
19   - else
20   - echo "Veuillez relancer le script en root"
21   - exit 1
22   - fi
  10 +access_path="toto"
  11 +echo $access_path
  12 +if [[ -r "$access_path" && -w "$access_path" && -x "$access_path" ]]; then
  13 + echo "Vous avez les droits suffisants sur ce repertoire pour exécuter ce script"
23 14 else
24   - echo "Veuillez relancer le script en root"
  15 + echo "Veuillez relancer le script en tant que root"
25 16 exit 1
26 17 fi
27 18  
  19 +
28 20 # Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
29 21 # Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
30 22 # Pour cela, il suffit d'executer ces 2 lignes :
... ... @@ -251,6 +243,14 @@ sudo chgrp -R $grp ./logs/
251 243 sudo chmod -R 777 ./vendor/
252 244 echo "==> Done"
253 245  
  246 +
  247 +# Rendre les scripts executables
  248 +chmod +x SHOW_LOGS
  249 +chmod +x TEST_WEB
  250 +chmod +x TESTS.sh
  251 +chmod +x UPDATE
  252 +chmod +x VERSION
  253 +
254 254 echo
255 255 echo "Mise à jour des droits des dossiers tmp et logs"
256 256 echo
... ...
install/update.sh
... ... @@ -34,25 +34,35 @@ function abort() {
34 34  
35 35  
36 36 # ----------------------------------------
37   -# 0) Sauvegarde de l'état actuel du dossier database/update/ (dans /tmp)
  37 +# 0) Sauvegarde de certains éléments (dans /tmp)
  38 +# (pour voir s'ils vont changer après le "git pull")
38 39 # ----------------------------------------
  40 +
  41 +# a) Sauvegarde du fichier composer.json
  42 +cp -fp ../composer.json /tmp/ || abort
  43 +[[ $TEST == 1 ]] && cp ../composer.lock /tmp/composer.json
  44 +composer_json_prev=/tmp/composer.json
  45 +
  46 +# b) Sauvegarde du dossier database/update/
39 47 #db_update_scripts_before=( "key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10" )
40 48 rm -rf $db_update_scripts_folder_tmp/ || abort
41 49 mkdir $db_update_scripts_folder_tmp/ || abort
42 50 cp -fp $db_update_scripts_folder/db-update-????-??-??.sh $db_update_scripts_folder_tmp/ || abort
43 51 cd $db_update_scripts_folder_tmp/ || abort
44 52 db_update_scripts_before=$(ls -1 db-update-????-??-??.sh) || abort
45   -cd - >/dev/null || abort
  53 +cd - >/dev/null || abort
46 54 #echo ; echo ${db_update_scripts_before[@]}
47 55  
48 56  
  57 +
49 58 # ----------------------------------------
50 59 # 1) Mise à jour du code source (git pull)
51 60 # ----------------------------------------
52 61 #db_update_scripts_after=( "key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10" "key0" "key11" )
53 62 echo
54   -echo "* Mise à jour du code source (git pull) (o/n) ? [o]"
55   -read do_it ; [[ -z $do_it ]] && do_it="o" ; echo $do_it
  63 +echo "* 1) Mise à jour du code source (git pull) (o/n) ? [o]"
  64 +read do_it ; [[ -z $do_it ]] && do_it="o"
  65 +#echo $do_it
56 66 [[ $do_it != "o" ]] && exit 0
57 67  
58 68 cd ../ || abort
... ... @@ -66,9 +76,45 @@ chmod 777 webroot/img/photos/
66 76 cd - >/dev/null || abort
67 77  
68 78  
  79 +
69 80 # ----------------------------------------
70   -# 2) On fait la différence entre les fichiers de mise à jour BD présents après le git et avant
  81 +# 2) Mise a jour des plugins php (dossier vendor/) si nécessaire
  82 +# (seulement si le fichier composer.json a changé)
71 83 # ----------------------------------------
  84 +echo
  85 +echo "* 2) Mise à jour des plugins php (seulement si nécessaire) :"
  86 +plugins_dir=../vendor
  87 +# Creation dossier vendor/ si n'existe pas encore
  88 +if [ ! -d $plugins_dir ] ; then
  89 + mkdir $plugins_dir
  90 + chmod 777 $plugins_dir
  91 +fi
  92 +chmod +x plugins_set.sh
  93 +chmod +x plugins_install.sh
  94 +diff ../composer.json $composer_json_prev >/dev/null
  95 +# Attention, ne pas faire "update" mais "install"
  96 +# car "install" n'installe que les NOUVEAUX plugins non déjà installés
  97 +# et "update" risquerait aussi d'installer des versions plus récentes
  98 +# que les plugins qui sont déjà installés (et donc pas encore testés)
  99 +##[[ $? == 1 ]] && ./plugins_install.sh
  100 +if [[ $? == 0 ]] ; then
  101 + echo "==> PAS NÉCESSAIRE"
  102 +else
  103 + echo "OUI"
  104 + #./plugins_install.sh
  105 +fi
  106 +
  107 +
  108 +
  109 +# ----------------------------------------
  110 +# 3) Mise a jour de la BD (si nécessaire)
  111 +# (seulement s'il y a au moins 1 nouveau script db-update-YYYY-MM-DD.sh dans database/update/)
  112 +# ----------------------------------------
  113 +
  114 +echo
  115 +echo "* 3) Mise à jour de la Base de Données (seulement si nécessaire) :"
  116 +
  117 +# a) On fait la différence entre les fichiers de mise à jour BD présents après le git et avant
72 118  
73 119 # TEST only
74 120 [[ $TEST == 1 ]] && (rm ../database/update/db-update-2014-08-23.sh ; touch ../database/update/test.txt ; touch ../database/update/db-update-2014-08-24.sh ; touch ../database/update/db-update-2014-08-25.sh; chmod +x ../database/update/db-update-2014-*.sh)
... ... @@ -78,25 +124,23 @@ cd $db_update_scripts_folder/ || abort
78 124 db_update_scripts_after=$(ls -1 db-update-????-??-??.sh) || abort
79 125 cd - >/dev/null || abort
80 126 #echo ; echo ${db_update_scripts_after[@]}
81   -echo "=> Fait"
82 127  
83 128 db_update_scripts_new=$( echo ${db_update_scripts_before[@]} ${db_update_scripts_after[@]} | tr ' ' '\n' | sort | uniq -u ) || abort
84 129 #temp=() ; for t in ${db_update_scripts_new[@]} ; do temp+=($t) ; done ; temp+=('toto') ; db_update_scripts_new=$temp
85 130 #echo ${#db_update_scripts_new[@]} ; echo ${db_update_scripts_new[@]}
86 131 # Pas de nouveau script de mise à jour BD à exécuter => exit
87   -[[ $db_update_scripts_new == '' ]] && exit 0
  132 +#[[ $db_update_scripts_new == '' ]] && echo "==> PAS NÉCESSAIRE" ; exit 0
  133 +if [[ $db_update_scripts_new == '' ]] ; then
  134 + echo "==> PAS NÉCESSAIRE"
  135 + echo
  136 + exit 0
  137 +fi
88 138 #nb_scripts=${#db_update_scripts_new[@]}
89 139 #[[ $nb_scripts == 0 ]] && exit 0
90 140  
91 141  
  142 +# b) Mise a jour de la BD
92 143  
93   -# ----------------------------------------
94   -# 3) (Optionnel) Mise a jour de la BD
95   -# (seulement s'il y a au moins 1 nouveau script db-update-YYYY-MM-DD.sh dans database/update/)
96   -# ----------------------------------------
97   -
98   -echo
99   -echo "* Mise à jour de la Base de Données :"
100 144 echo "Voici le(s) script(s) à exécuter :"
101 145 echo ${db_update_scripts_new[@]}
102 146 # Remove files that were DELETED by "git pull"
... ... @@ -108,18 +152,19 @@ for db_update_script_new in ${db_update_scripts_new[@]} ; do
108 152 # Ignorer les fichiers supprimés par le "git pull"
109 153 [[ ! -f $db_update_script_new ]] && continue
110 154 echo ; echo
111   - echo "- Execution du script de mise à jour de la BD $db_update_scripts_folder/$db_update_script_new (o/n) ? [o]"
112   - read do_it ; [[ -z $do_it ]] && do_it="o" ; echo $do_it
113   - if [[ $do_it == "o" ]] ; then
114   - #ls -l ./$db_update_script_new_ || abort
115   - ./$db_update_script_new || abort
116   - fi
  155 + #echo "- Execution du script de mise à jour de la BD $db_update_scripts_folder/$db_update_script_new (o/n) ? [o]"
  156 + echo "- Execution du script de mise à jour de la BD $db_update_scripts_folder/$db_update_script_new"
  157 + #read do_it ; [[ -z $do_it ]] && do_it="o" ; echo $do_it
  158 + #if [[ $do_it == "o" ]] ; then
  159 + #ls -l ./$db_update_script_new_ || abort
  160 + ./$db_update_script_new || abort
  161 + #fi
117 162 done
118 163 [[ $TEST == 1 ]] && (rm test.txt ; rm db-update-2014-*.sh)
119   -cd - >/dev/null
  164 +cd - >/dev/null
  165 +
120 166  
121   -# Test only
122 167  
123 168 echo
124   -echo "=> Fait"
  169 +#echo "=> MISE À JOUR TERMINÉE"
125 170  
... ...