v1.0.2: intergation des pages
[legraldocs:legralnet.git] / scripts / gitVersion-v1.0.5.sh
1 #!/bin/sh
2 VERSION="1.0.5";
3 scriptPath=$0;           #chemin complet du script 
4 scriptRep=`dirname $0`;  #repertoire du script
5 localVersionPath="./localVersion.sh";
6 islocalVersionLoad=0;
7 isTest=0;               # si version == 'test' ->ni commit ni push
8
9 # - chargement des codes couleurs - #
10 source $scriptRep/couleur.sh
11
12 echo "$couleurINFO$repScript gitVersion v$VERSION$couleurNORMAL";
13
14 # - usage si pas de parametre - #
15 if [ $# -lt 1 ];then
16         echo "usage:"
17         echo " ./scripts/gitVersion.sh$couleurINFO version$couleurNORMAL min; # concat et minimise les js et css";
18         echo " ./scripts/gitVersion.sh$couleurINFO version$couleurNORMAL commit; # min + add + commit";
19         echo " ./scripts/gitVersion.sh on push; # push + tag avec 'version'";
20         echo " ./scripts/gitVersion.sh$couleurINFO version$couleurNORMAL commit push";
21         echo " $couleurWARN si$couleurINFO version$couleurWARN = 'test' le commit et le push n'est pas reellement fait.$couleurNORMAL";
22         exit
23         fi
24
25
26 # - genrere les fichiers contennue dans ./locales/ ) - #
27 # - generation de script.js et styles.css - #
28 function localGenMin {
29
30         # - chargement config local - #
31         if [ $islocalVersionLoad == 1 ];
32         then
33
34                 # - concatenation des fichiers - #
35                 echo "$couleurINFO localConcat: concatenation des fichier.$couleurNORMAL";
36                 localConcat;    # cette fonction est dans le fichier $localVersionPath 
37
38                 # - minimise scripts.js - # 
39                 # yuicompressor rajoute automatiquement l'extention ".js|.css" (pas ici! -> rep inside ?)
40
41                 echo "compression de ./locales/scripts.js .$couleurNORMAL";
42                 java -jar ${scriptRep}/yuicompressor-2.4.8.jar ./locales/scripts.js -o ./locales/scripts.min.js
43 #               echo "suppression de ./locales/scripts.js .$couleurNORMAL";
44 #               rm ./locales/scripts.js
45
46                 echo "compression de ./locales/styles.css .$couleurNORMAL";
47                 java -jar ${scriptRep}/yuicompressor-2.4.8.jar ./styles/styles.css -o ./styles/styles.min.css
48 #               echo "suppression de ./locales/styles.css .$couleurNORMAL";
49 #               rm ./locales/styles.css
50                 fi
51         }
52
53 function commit {
54         echo "$couleurINFO on commit...";
55         echo "mais avant:";
56         echo "1a- on copie la version dans le rep version.";
57         if [ $islocalVersionLoad == 1 ];
58         then
59                 # - generation de script.js et styles.css - #
60                 localGenMin;    # appele source $localVersionPath neccessaire a localSave()
61
62                 # - creation des versions et copies dans ./versions - # 
63                 localSave;      # cette fonction est dans le fichier $localVersionPath 
64
65         else
66                 echo "$couleurWARN pas de fichier $localVersionPath$couleurNORMAL";
67                 fi
68
69         echo "$couleurINFO 2- on add .$couleurNORMAL";
70         git add .
71
72         if [ $isTest == 0 ];then
73                 echo "$couleurINFO maintenant on commit (copier le texte issue de release)$couleurNORMAL";
74                 git commit
75
76                 echo "$couleurINFO on tag le commit avec $couleurWARN$PROGVERSION$couleurNORMAL";
77                 git tag $PROGVERSION;
78         else
79                 echo "$couleurWARN mode test: pas de commit ni tag $couleurNORMAL";
80                 fi
81         }
82
83
84 function push {
85         if [ $isTest == 0 ];then
86                 echo "$couleurINFO on push les commits$couleurNORMAL";
87                 git push;
88                 echo "$couleurINFO on push les tags$couleurNORMAL";
89                 git push --tag
90         else
91                 echo "$couleurWARN mode test: pas de push $couleurNORMAL";
92                 fi              
93
94         } 
95
96 function sortieOk {
97 #       echo "$couleurINFO on affiche le status:$couleurNORMAL"
98 #       git st;
99         echo "$couleurINFO on affiche les tags$couleurNORMAL";
100         git tag;
101         exit 0; #on quitte le script
102         }
103
104
105
106 ###########################################
107 # - functions utiliser par localesSave() - #
108 ############################################
109
110 # - concatenation de fichier - #
111 function catJS {
112         echo -e  "\r\n/*!                      $1 */" >> ./locales/scripts.js
113         cat "$1"            >> ./locales/scripts.js
114         }
115
116 function catCSS {
117         echo -e  "\r\n/*!                      $1 */" >> ./styles/styles.css
118         cat "$1"            >> ./styles/styles.css
119         }
120
121
122 # - creer une copie d'un js|css en ajoutant la version en suffixe - #
123 # %1:fn:fichier nom
124 # %2:fe: fichier extention (sans le point)
125 # (calc)fv: nom du fichier avec la version en suffixe
126 function versionSave {
127         fn=$1;
128         fe=".$2";       # ajout du point 
129         fv="$fn-$PROGVERSION";
130         echo "creation de la copie $fn$fe vers ./versions/$fv$fe";
131         cp $fn$fe ./versions/$fv$fe
132         }
133
134 # - minimise les fichiers js ou css (selon $2) - #
135
136 # minSuf: suffixe de la minification
137 function versionMinimise {
138         fn=$1;
139         fe=".$2";
140         fv="$fn-$PROGVERSION";
141         minSuf=".min";fm="$fv$minSuf$fe";
142         echo "compression de  $fn$fe vers $fm$fe";
143         #java -jar ${scriptRep}/scripts/yuicompressor-2.4.8.jar $fn$fe -o ./versions/$fm$fe
144         #yuicompressor rajoute automatiquement l'extention ".js|.css"
145         java -jar ${scriptRep}/scripts/yuicompressor-2.4.8.jar $fn$fe -o ./versions/$fm
146         }
147
148
149 ########
150 # main #
151 ########
152 PROGVERSION=$1;
153
154 # - on se positionne sur la racine du projet - #
155 cd $scriptRep/../
156 echo "$couleurINFO repertoire courant: $couleurNORMAL";
157 pwd;
158
159
160 # - push only - #
161 if [ "$1" == "push" ];then
162         echo "$couleurINFO push only$couleurNORMAL";
163         push;
164         sortieOk;
165         fi
166
167 # - Creation des repertoires et fichiers - #
168
169 rep="./.git";
170 if [ -d "$rep" ];
171 then
172         echo "$couleurINFO repertoire $rep existant$couleurNORMAL";
173 else
174         echo "$couleurWARN repertoire $rep NON existant -> creation d'un repo initial$couleurNORMAL";
175         git init;
176         echo "$couleurWARN taper 'git push --set-upstream origin master' pour le positionner sur master $couleurNORMAL";
177         fi
178
179 rep="./versions";
180 if [ -d "$rep" ];
181 then
182         echo "$couleurINFO repertoire $rep existant$couleurNORMAL";
183 else
184         echo "$couleurWARN repertoire $rep NON existant -> creation$couleurNORMAL";
185         mkdir $rep
186         fi
187
188
189 rep="./locales";
190 if [ -d "$rep" ];
191 then
192         echo "$couleurINFO repertoire $rep existant$couleurNORMAL";
193 else
194         echo "$couleurWARN repertoire $rep NON existant -> creation$couleurNORMAL";
195         mkdir $rep
196         fi
197
198 rep="./styles";
199 if [ -d "$rep" ];
200 then
201         echo "$couleurINFO repertoire $rep existant$couleurNORMAL";
202 else
203         echo "$couleurWARN repertoire $rep NON existant -> creation$couleurNORMAL";
204         mkdir $rep
205         fi
206
207
208
209 # - creation/remise a zero des fichiers locales - #
210 echo "$couleurINFO creation/remise a zero des fichiers locales $couleurNORMAL";
211 echo "/*! fichier generer automatiquement et compresser avec yuicompressor */" > $rep/styles.css
212 echo  "/*! fichier generer automatiquement et compresser avec yuicompressor */" > $rep/scripts.js
213
214 #catCSS /www/sites/intersites/lib/tiers/css/knacss/knacss.css
215
216
217 # - chargement de la configuration utilisateur  - #
218 if [ -f "$localVersionPath" ];
219 then
220         echo "$couleurINFO Chargement de $localVersionPath $couleurNORMAL";
221         source $localVersionPath;
222         islocalVersionLoad=1;
223 else
224         echo "$couleurWARN pas de fichier $localVersionPath$couleurNORMAL";
225         islocalVersionLoad=0;
226         fi
227
228
229 # - lecture des options  - #
230 # -- version == 'test'-- #
231 if [ "$1" == "test" ];then
232         isTest=1;
233         fi
234
235
236
237 # - execution des commandes selectionnees - #
238
239 if [ "$2" == "min" ];then
240         localGenMin;
241         sortieOk;
242         fi
243
244
245 if [ "$2" == "commit" ];then
246         commit; # execute localGenMin();
247         if [ "$3" == "push" ];then
248                 push;
249                 fi
250         sortieOk;
251         fi
252
253 ## changement de syntaxe -> debut de main
254 #if [ "$2" == "push" ];then
255 #       push;
256 #       sortieOk;
257 #       fi
258