use switch case for options and use variables
use variables instead of pure texts in help and script.
This commit is contained in:
parent
58388c1153
commit
e00cccab04
1 changed files with 54 additions and 39 deletions
93
generate.sh
93
generate.sh
|
@ -21,7 +21,6 @@
|
|||
set -e
|
||||
|
||||
# liste des fichiers html à générer
|
||||
#files="autres.html copaings.html index.html ou.html projets.html rss.html apropos.html"
|
||||
langDir="lang"
|
||||
tmpHeader="/tmp/header.html"
|
||||
annexes="css img"
|
||||
|
@ -39,24 +38,70 @@ org=1
|
|||
function print_help {
|
||||
cat << EOF
|
||||
Utilisation :
|
||||
generate.sh [options] [<dossier>]
|
||||
$(basename $0) [options] [<dossier>]
|
||||
|
||||
génère les fichiers HTML du site. Il est possible de changer le dossier de
|
||||
destination (www par défaut).
|
||||
destination ($target par défaut).
|
||||
|
||||
Options :
|
||||
-h génère ce message et arrête le script.
|
||||
-h génère ce message et arrête le script
|
||||
-c nettoie les fichiers générés
|
||||
-o ne génère pas les fichiers org
|
||||
-t lance un docker pour pouvoir tester le site
|
||||
|
||||
Les options suivantes seront codées dans un futur proche :
|
||||
-d défini la langue par défaut (son index sera mit à la racine); fr par défaut
|
||||
-n génère la langue dans le nom du fichier et non dans le chemin.
|
||||
-d défini la langue par défaut (son index sera mit à la racine);
|
||||
fr par défaut
|
||||
-n génère la langue dans le nom du fichier et non dans le chemin
|
||||
(example.org/fr/index.html -> example.org/index.fr.html)
|
||||
EOF
|
||||
}
|
||||
|
||||
# pas besoin de continuer si on demande juste l'aide
|
||||
if [[ $@ =~ "-h" ]]
|
||||
then
|
||||
print_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# vérification des arguments passés
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
case $1 in
|
||||
"-o") # pas de génération des fichiers org
|
||||
org=0
|
||||
;;
|
||||
"-c") # on nettoie les fichiers
|
||||
# TODO si on précise un dossier, nettoyer ce dossier
|
||||
echo "Nettoyage de $target"
|
||||
rm -rf $target
|
||||
exit 0
|
||||
;;
|
||||
"-t") # lancer un docker de test
|
||||
docker build . --tag site && echo -e \
|
||||
"\n\033[32mSite de test déployé sur l'adresse" \
|
||||
"localhost:8080\033[0m" || exit 1
|
||||
echo -e "\033[32mC-c pour quitter\033[0m\n"
|
||||
|
||||
docker run --rm -p 8080:80 site
|
||||
docker rmi site
|
||||
exit 0
|
||||
;;
|
||||
"-d") ;&
|
||||
"-n")
|
||||
echo "Commande non implémentée."
|
||||
exit 1
|
||||
;;
|
||||
"-"*)
|
||||
print_help
|
||||
exit 2
|
||||
;;
|
||||
*) target=$1 ;;
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
###############################################################################
|
||||
# Génère un fichier header propre à une langue
|
||||
#
|
||||
|
@ -88,36 +133,6 @@ function generate_header {
|
|||
echo -e " </div>\n" >> $tmpHeader
|
||||
}
|
||||
|
||||
# vérification des arguments passés
|
||||
if [[ $@ =~ "-h" ]]
|
||||
then
|
||||
print_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $@ =~ "-c" ]]
|
||||
then
|
||||
rm -rf www
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $@ =~ "-t" ]]
|
||||
then
|
||||
docker build . --tag site && echo -e \
|
||||
"\n\033[32mSite de test déployé sur l'adresse localhost:8080\033[0m" \
|
||||
|| exit 1
|
||||
echo -e "\033[32mC-c pour quitter\033[0m\n"
|
||||
|
||||
docker run --rm -p 8080:80 site
|
||||
docker rmi site
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $@ =~ "-o" ]]
|
||||
then
|
||||
org=0
|
||||
fi
|
||||
|
||||
if [ -d $target ]
|
||||
then
|
||||
# TODO demander à l'utilisateur
|
||||
|
@ -159,8 +174,7 @@ do
|
|||
sed -i -e "/%links%/a$newHeader" $file
|
||||
fi
|
||||
|
||||
cat $langDir/$l/$i >> $file
|
||||
cat $footer >> $file
|
||||
cat $langDir/$l/$i $footer >> $file
|
||||
# nettoyage des balises précédemment utilisées
|
||||
sed -i -e "/%links%/d" $file
|
||||
sed -i -e "/%link%/,/%endlink%/d" $file
|
||||
|
@ -174,6 +188,7 @@ do
|
|||
done
|
||||
|
||||
echo "Header links translation..."
|
||||
# cf. la page info 4.2 du manuel Bash (transforme un fichier en tableau)
|
||||
mapfile translateHeader < $langDir/links.config
|
||||
langs=${translateHeader[0]}
|
||||
nbLang=$(echo "$langs" | grep -c "|")
|
||||
|
@ -219,7 +234,7 @@ for c in $(awk 'BEGIN {
|
|||
} if (code) {
|
||||
print NR
|
||||
}
|
||||
}' www/index.html)
|
||||
}' $target/index.html)
|
||||
do
|
||||
sed -i -e "$c s/href=\"/href=\"$defaultLang\//" $target/index.html
|
||||
done
|
||||
|
|
Loading…
Reference in a new issue