#!/bin/bash ################################################################################ # Génère les fichiers HTML de mon site # # Copyright (C) 2022 rick G. # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program. If not, see . ################################################################################ # liste des fichiers html à générer files="autres.html copaings.html index.html ou.html projets.html rss.html apropos.html" annexes="css img" pathLinks="/home/site/a/" target="www" header="header.html" footer="footer.html" org=1 ################################################################################ # Génère un message d'aide ################################################################################ function print_help { echo "usage : generate.sh [-o] []" echo -e "\tgénère les fichiers HTML du site. Il est possible de changer" echo -e "\tle dossier de destination (www par défaut)." echo echo -e "\t-h\tgénère ce message et arrête le script." echo -e "\t-o\tne génère pas les fichiers org" } # vérification des arguments passés if [[ $@ =~ "-h" ]] then print_help exit 0 fi if [[ $@ =~ "-o" ]] then org=0 fi if [ -d $target ] then # TODO demander à l'utilisateur rm -rf $target fi mkdir $target for i in ${files} do echo "Generate $i..." file="$target/$i" cat $header > $file # on extrait le bloc contenant les link, on les enlève et rajoute newHeader=$(sed -n -e "/%link%/,/%endlink%/p" $i | sed -e "/%link%/d;/%endlink%/d" -e 's/\//\\\//g' -e "i' | 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. if [ $(echo $newHeader | wc -c) -lt 10 ] then sed -i -e "/%links%/d" $file else # pour bien aligner newHeader="\ \ \ \ \ \ \ \ $newHeader" sed -i -e "/%links%/a$newHeader/" $file fi cat $i >> $file cat $footer >> $file # nettoyage des balises précédemment utilisées sed -i -e "/%links%/d" $file sed -i -e "/%link%/,/%endlink%/d" $file sed -i -e "s/%file%/$i/" $file done cp -t $target -r $annexes echo "Link Links (lul)" ln -s $pathLinks $target if [ $org -eq 1 ] then echo "Generate org files..." emacs -u $USER --script publish.el fi