change var name and stop script if error
authorrick <rick@gnous.eu>
Tue, 17 Jan 2023 22:32:47 +0000 (23:32 +0100)
committerrick <rick@gnous.eu>
Tue, 17 Jan 2023 22:32:47 +0000 (23:32 +0100)
generate.sh

index 4a2d88be39489df0418213ab75d478533ac60b9e..9437d2668c2efa70e6c21b86796f4778eaf2fbc6 100755 (executable)
 # this program. If not, see <https://www.gnu.org/licenses/>.
 ################################################################################
 
+set -e
+
 # liste des fichiers html à générer
 #files="autres.html copaings.html index.html ou.html projets.html rss.html apropos.html"
-files="lang"
+langDir="lang"
 tmpHeader="/tmp/header.html"
 annexes="css img"
 
@@ -115,12 +117,12 @@ fi
 
 mkdir $target
 
-for l in $(ls -d $files/*/ | cut -d\/ -f2)
+for l in $(ls -d $langDir/*/ | cut -d\/ -f2)
 do
     generate_header lang/$l/header.link
     echo "Create folder $l in $target..."
     mkdir "$target/$l"
-    for i in $(ls $files/$l)
+    for i in $(ls $langDir/$l)
     do
         echo "[$l] Generate $i..."
         file="$target/$l/$i"
@@ -133,7 +135,7 @@ do
         # https://stackoverflow.com/questions/68573654/copy-a-content-from-one-file-and-need-to-replace-in-another-file-using-sed
         # https://unix.stackexchange.com/questions/26284/how-can-i-use-sed-to-replace-a-multi-line-string
         # TODO pouvoir mettre plusieurs lignes link
-        newHeader=$(sed -n -e "/%link%/,/%endlink%/p" $files/$l/$i | sed -e "/%link%/d;/%endlink%/d" -e 's/\//\\\//g' -e "i<link " -e 'a\ \\\/>' | tr -d "\n")
+        newHeader=$(sed -n -e "/%link%/,/%endlink%/p" $langDir/$l/$i | sed -e "/%link%/d;/%endlink%/d" -e 's/\//\\\//g' -e "i<link " -e 'a\ \\\/>' | tr -d "\n")
 
         # je suppose que s'il y a moins de 10 caractères, alors on ne prend pas
         # en compte le nouveau link.
@@ -146,7 +148,7 @@ do
             sed -i -e "/%links%/a$newHeader" $file
         fi
 
-        cat $files/$l/$i >> $file
+        cat $langDir/$l/$i >> $file
         cat $footer >> $file
         # nettoyage des balises précédemment utilisées
         sed -i -e "/%links%/d" $file
@@ -161,7 +163,7 @@ do
 done
 
 echo "Header links translation..."
-mapfile translateHeader < lang/links.config
+mapfile translateHeader < $langDir/links.config
 langs=${translateHeader[0]}
 nbLang=$(echo "$langs" | grep -c "|")
 for (( i=1; i<${#translateHeader[@]}; i++ ))
@@ -180,7 +182,7 @@ do
             lang=$(echo ${translateHeader[0]} | cut -d\| -f$(( $k + 1 )) | tr -d " ")
             file=$(echo ${translateHeader[$i]} | cut -d\| -f$(( $k + 1 )) | tr -d " ")
 
-            sed -i -e "s/href=\"\/$lang\/.*\.html/href=\"\/$lang\/$file.html/" www/$currentLang/$currentFile.html
+            sed -i -e "s/href=\"\/$lang\/.*\.html/href=\"\/$lang\/$file.html/" $target/$currentLang/$currentFile.html
         done
     done
 done