view.tpl : use double quotes instead of simple in HTML
[ldapsaisie.git] / upgradeFromGit.sh
index 9dbd991..fcf89de 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 
 ROOT_DIR=$( cd `dirname $0`; pwd )
@@ -17,9 +17,19 @@ function msg() {
     echo $2 "$1" | tee -a "$LOG_FILE"
 }
 
+function check_file_or_symlink() {
+    [ -f "$1" ] && echo 0 && return 0
+    if [ -L "$1" ]
+    then
+        [ -r "$1" ] && echo 0 && return 0
+        rm -f "$1"
+    fi
+    echo 1 && return 1
+}
+
 cd $ROOT_DIR
 
-msg "Clean git repos : "
+msg "-> Clean git repos : "
 for i in $LOCAL_FILES
 do
        msg "\t-> $i : " -en
@@ -77,7 +87,7 @@ then
   fi
 fi
 
-msg "Verification of git repos state : "
+msg "-> Verification of git repos state : "
 git status >> $LOG_FILE 2>&1
 if [ "$ETAT" != "" ]
 then
@@ -86,7 +96,7 @@ then
 fi
 msg "\t->[OK]" -e
 
-msg "Upgrade git repos : "
+msg "-> Upgrade git repos : "
 RES_GIT=`git pull`
 RES=$?
 msg "$RES_GIT" -e
@@ -97,7 +107,7 @@ then
 fi
 msg "\t-> [OK]" -e
 
-msg "Install local files : "
+msg "-> Install local files : "
 for i in $LOCAL_FILES
 do
        msg "\t-> $i : " -ne
@@ -156,34 +166,105 @@ do
                msg "file does not exist. Pass..."
        fi
 done
+
 if [ "$THEME" != "" ]
 then
-       msg "-> Install theme : " -en
+       msg "-> Install theme : "
+
+       # TPL
+       msg "\t- Template : " -e
        ln -s $LOCAL_SAV_DIR/theme/templates $ROOT_DIR/public_html/templates/$THEME >> $LOG_FILE 2>&1
+       if [ -d $ROOT_DIR/public_html/templates/$THEME_TPL_REF ]
+       then
+               msg "\t\t-> Vérification de la présence des fichiers : " -e
+               for i in $ROOT_DIR/public_html/templates/$THEME_TPL_REF/*
+               do
+                       f=`basename $i`
+                       msg "\t\t\t- $f : " -en
+                       if [ `check_file_or_symlink "$ROOT_DIR/public_html/templates/$THEME/$f"` -eq 0 ]
+                       then
+                               msg "present."
+                       else
+                               ln -s $ROOT_DIR/public_html/templates/$THEME_TPL_REF/$f $ROOT_DIR/public_html/templates/$THEME/$f
+                               msg "link."
+                       fi
+               done
+       fi
+
+       # IMG
+       msg "\t- Images : " -e
        ln -s $LOCAL_SAV_DIR/theme/images $ROOT_DIR/public_html/images/$THEME >> $LOG_FILE 2>&1
+       if [ -d $ROOT_DIR/public_html/images/$THEME_IMG_REF ]
+       then
+               msg "\t\t-> Vérification de la présence des fichiers : " -e
+               for i in $ROOT_DIR/public_html/images/$THEME_IMG_REF/*
+               do
+                       f=`basename $i`
+                       msg "\t\t\t- $f : " -en
+                       if [ `check_file_or_symlink "$ROOT_DIR/public_html/images/$THEME/$f"` -eq 0 ]
+                       then
+                               msg "present."
+                       else
+                               ln -s $ROOT_DIR/public_html/images/$THEME_IMG_REF/$f $ROOT_DIR/public_html/images/$THEME/$f
+                               msg "link."
+                       fi
+               done
+       fi
+
+       # CSS
+       msg "\t- CSS : " -e
        ln -s $LOCAL_SAV_DIR/theme/css $ROOT_DIR/public_html/css/$THEME >> $LOG_FILE 2>&1
-       msg "Ok"
+       if [ -d $ROOT_DIR/public_html/css/$THEME_CSS_REF ]
+       then
+               msg "\t\t-> Vérification de la présence des fichiers : " -e
+               for i in $ROOT_DIR/public_html/css/$THEME_CSS_REF/*
+               do
+                       f=`basename $i`
+                       msg "\t\t\t- $f : " -en
+                       if [ `check_file_or_symlink "$ROOT_DIR/public_html/css/$THEME/$f"` -eq 0 ]
+                       then
+                               msg "present."
+                       else
+                               ln -s $ROOT_DIR/public_html/css/$THEME_CSS_REF/$f $ROOT_DIR/public_html/css/$THEME/$f
+                               msg "link."
+                       fi
+               done
+       fi
 fi
 
 if [ $BUILD_DOC -eq 1 ]
 then
-       msg "-> Do you want export the documentation (y/N) ? " -en
+       [ -n "$LAST_UPDATE_FILE" ] && [ "`$ROOT_DIR/checkDocExportsNecessity.sh`" == "" ] && echo "Export documentation is not necessary. Pass." && exit 
+       msg "-> Do you want build the documentation (y/N) ? " -en
        read a
        if [ "$a" == "y" -o "$a" == "Y" ]
        then
-        msg "-> Export the doc : " -en
-               cd $ROOT_DIR/doc >> $LOG_FILE 2>&1 && make >> $LOG_FILE 2>&1 && cd - >> $LOG_FILE 2>&1
-               if [ $? -gt 0 ]
-               then
-                       msg "Error"
-                       exit 1
-               else
-                       msg "Ok"
-               fi
+               msg "-> Build the doc : " -en
+               cd $ROOT_DIR/doc
+               
+               make clean >> $LOG_FILE 2>&1
+               make >> $LOG_FILE 2>&1 &
+               
+               export P=$!
+               
+               trap exitwhell INT
+               
+               function exitwhell() {
+                       [ -n "$P" ] && kill -9 $P 2> /dev/null
+                       echo " -- INT -- "
+                       exit 1
+               }
+               
+               while [ -d /proc/$P ]
+               do
+                       echo -n .
+                       sleep 1
+               done
+               echo done.
 
-        if [ -n "$EXPORT_DOC_DIR" ]
-        then
-            $ROOT_DIR/buildDocExports.sh
-        fi
-    fi
+               if [ -n "$EXPORT_DOC_DIR" ]
+               then
+                   $ROOT_DIR/buildDocExports.sh
+               fi
+       fi
 fi