« Auto-éditer un wikilivre/Auto-référencer » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Annexer (main) : WL:RD : ! mise en page
m →‎Lister (module) : WL:RD : ! mise en page
Ligne 512 :
afficher le code de retour de la commande.
afficher les listes pour contrôle et retourner la valeur 0 si tout est correct.
 
{{Boîte déroulante début|titre=Code du module ''lister''|styleFrame=width:100%;|fondtitre=#F0F0F0<!--|styleTitre=color:white;<!|style=headerbleu-->}}
{{/lister}}
<syntaxhighlight lang="bash">
{{Boîte déroulante fin}}
#! /bin/bash
#P Nom du fichier de commandes : lister
#P Syntaxe : "lister <nom du livre>"
#P Exemple : "./lister LivreTest" à la console.
#P Date de création : 26 mars 2020
#P Modifié le : 24 avril 2020 par GC
#P Version sur WikiLivres le : 24 avril 2020
 
#D L'objet de cette commande est de créer le fichier de liste $Projet/$1.list
#D avec le fichier "contenu" prioritaire, sinon avec le fichier "compilé"
#D si il existe.
#D Le 23 avril; créer la liste de projet $Projet/$1.prj a été jugée nécessaire
#D pour que l'utilisation des boucles de commandes s'exécutent dans l'ordre
#D de présentation des textes et des images afin de créer la page "Annexe"
#D du livre (ou de la page).
#D
#D Si le fichier "<livre>.contenu" (copie de la page "Contenus" de la version
#D imprimable) n'exite pas le programme test la présence du fichier de
#D compilation "<livre>.compilé", et si celui-ci n'est pas présent le
#D programme se termine avec un code de retour à 1.
#D Lorsque le programme se termine normalement le code de retour est 0, le
#D fichier examiné aura été protégé contre l'effacement, donc en lecture
#D seule, et le fichier projet.list aura été créé.
#D Le contenu de la liste est affiché pour être validé.
#D
#P L'extraction de la documentation peut se faire par la commande :
#P mkd -Stw DP lister
 
source header.sh
 
#O## lister #################
#T cd $Projet
#T echo -n "pwd = "
#T pwd
#T exit
 
#O effacer tous les fichiers *.list,
rm *.list
#O initialiser la variable de retour à 0
retour=0
err1=1 #P initialise une valeur d'erreur
#T echo "retour = "$retour
#T echo "valeur d'erreur de retour N°1 = "$err1
#T exit
 
#O créer le fichier de liste $Projet/$1.list avec le fichier "contenu" prioritaire, sinon avec le fichier "compilé" s'il existe.
#O si le fichier LivreTest.contenu existe,
if test -r $Projet/$1.contenu;
#O alors :
then {
#O s'assurer que le fichier sera en lecture seule,
echo "le fichier $Projet/$1.contenu a été trouvé et va être protégé contre la sur-écriture."
chmod 444 $Projet/$1.contenu
#O créer la liste des articles de la page avec la page de Contenus du livre.
echo ""
echo "$Projet/$1.list avec $Projet/$1.contenu :"
cat $Projet/$1.contenu | sed "s/\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" > $Projet/$1.list
#O créer le fichier de projet avec la page de Contenus du livre.
cat $1.contenu | grep $1 | sed "s/\[\[//g" | tr '|' '\n' |grep $1 | sed "s/$1\]\]/\r/g" | sed "s/\]\]//g" | cut -sd '/' -f3-4 > $Projet/$1.prj
}
#O sinon, si le fichier LivreTest.compilé existe,
elif test -r $Projet/$1".compilé"
#O alors :
then {
#O s'assurer que le fichier sera en lecture seule,
echo "le fichier $Projet/$1.compilé a été trouvé et va être protégé contre la sur-écriture."
chmod 444 $Projet/$1.compilé
#O créer la liste avec la page compilée.
echo ""
echo "$Projet/$1.list avec $Projet/$1.compilé :"
cat $Projet/$1.compilé | sed "s/:\[\[/$SitePrefix/g" | tr '|' '\n' | sed "s/\]\]//g" | grep "wiki" > $Projet/$1.list
#O créer le fichier de projet avec la page compilée
cat $1.compilé | grep $1 | sed "s/:\[\[//g" | tr '|' '\n' |grep $1 | sed "s/$1\]\]/\r/g" | sed "s/\]\]//g" | cut -sd '/' -f3-4 > $Projet/$1.prj
}
#O sinon afficher les raisons de l'échec et recommander la marche à suivre.
else
clear
echo "Les pages $Projet/$1.contenu et $Projet/$1.compilé n'ont pas été trouvées"
echo ""
echo -e "\033[31m copier la page 'Contenus' du livre dans le fichier $Projet/$1.contenu \033[0m"
echo ""
echo -e "\033[31m ou : copier la page de compilation dans le fichier $Projet/$1.compilé \033[0m"
let retour+=1;
#O fin si
fi
 
#O afficher le code de retour de la commande.
#T echo "code de retour : "$retour
echo "code de retour : $retour"
#if [$retour -eq $err1]; then exit $retour; fi
 
#O afficher la liste pour contrôle et retourner la valeur 0 si tout est correct.
echo ""
echo " fichier Projet.list"
cat $Projet/$1.list
echo ""
echo " fichier Projet.prj"
cat $Projet/$1.prj
echo " "
read -p "Si tout est correct : retour-chariot pour continuer, Ctrl-C pour quitter > "
exit 0
</syntaxhighlight>
{{Boîte déroulante fin}}
==== Exemple de page ''Contenus'' du livre en test LivreTest ====
: LivreTest.contenu