« Auto-éditer un wikilivre/Annexer (Version internationalisée)/sbin/manuels/doc2html.sh » : différence entre les versions

Contenu supprimé Contenu ajouté
 
Ligne 1 :
== .../tests/02-manuels/docu2html.sh ==
* La commande '''''docu2html''''' permet aux administrateurs de mettre les manuels à jour.
 
: Les manuels au format [[w:Roff_(langage_informatique)|'''roff''']] avec l'extension '<man>.1' sont compressés avec gzip sous la forme <man>.1.gz avant d'être installés dans les répertoires des manuels.
* Voir aussi la commande '''''htmlman.sh''''' qui affiche directement le manuel dans le navigateur
: Ils peuvent ensuite être transférés dans le répertoire /usr/share/man/man1/. ou /usr/share/man/<LANG>/man1/.
: La commande docu2html.sh produit aussi les manuel au format html lisible avec la commande ''htmlman'' et texte avec la commende ''textman''.
: Voir aussi : ''userman'' pour voir les manuels de l'utilisateur.
* Les sources '<man>.1' au format nroff sont placés dans le répertoire '.../tests/02-manuels/' pour être convertis. Ils sont sauvegardés dans le répertoire '.../tests/02-manuels/archives'
* La commande '''''htmlman.sh''''' affiche directement le manuel dans le navigateur
: Cette commande ''htmlman'' peut se trouver dans /usr/local/sbin ou dans les ''alias'' de l'utilisateur.
<syntaxhighlight lang="Bash">
#!/bin/sh
Ligne 13 ⟶ 19 :
#P 'sudo apt install man2html-base'
#P Voir aussi la commande htmlman.sh
#P Depuis le mois de novembre 2021 les répertoires $LANG/doc sont supprimés car
#P ils sont inutiles dans le système linux
#P
 
VERSION=211026211123
#O Include install variables
# Print the content of '*.1' files
ls -alpwd *> pwd.1txt
if cat pwd.txt | grep ~/Annexer
 
then Workdir=~/Annexer
elif cat pwd.txt | grep ~/Add_appendix
then Workdir=~/Add_appendix
else echo "Workind directory not found"
exit -1
fi
rm pwd.txt
#O Download global variables
source $Workdir/vars/installdir.var
if test -z $Mandir
then Mandir=$Installdir/man
fi
if test -z $Sbindir
then Sbindir=$Installdir/sbin
fi
if test -z $Testsdir
then Testsdir=$Workdir/tests
fi
echo "Manuals directories = $Mandir"
echo "Sbindir = $Sbindir"
echo "Testsdir = $Testsdir"
#O Cd manual tests directory
cd $Testsdir/02-manuels
#O Print the content of '*.1' files
if (ls -al *.1)
then
echo "*.1 found in $Testsdir/02-manuels"; cp -u *.1 archives/.
else "*.1 not found, exit -1"
exit -1
fi
# rm *.gz
# rm *~
Ligne 25 ⟶ 63 :
#
 
#O Create sub lang directories in current directory
mkdir -p de en es fr fr.UTF-8 ko
#O Create sub directories in lang directory
mkdir -p de/man1 de/doc de/doc/txt de/doc/html
mkdir -p de/man1
mkdir -p en/man1 en/doc en/doc/txt en/doc/html # --> man1 man1/doc man1/doc/txt man1/doc/html
mkdir -p esen/man1 es/doc es/doc/txt es/doc/html
mkdir -p fres/man1 fr/doc fr/doc/txt fr/doc/html
mkdir -p fr.UTF-8/man1/ fr.UTF-8/doc fr.UTF-8/doc/txt fr.UTF-8/doc/html
mkdir -p kofr.UTF-8/man1 ko/doc ko/doc/txt ko/doc/html
mkdir -p ko/man1
 
#O Create list of '*.1' files in current directory
ls -1 *.1 > man1.list
#O forFor each line, copy source line_lang.1 file to lang directory and compress to lang/man1/line.gz; create html and txt manuals
while read line
do
case $line in
(*_de.1) echo "line: $line"; cp -u $line de/.; gzip -c $line > de/man1/$line.gz; man2html -r de/man1/$line.gz > de/docman1/html/$line*.html; man de/man1/$line.gz > de/doc/txtman1/$line.txt ;;
(*_en.1) echo "line: $line"; cp -u $line en/.; gzip -c $line > en/man1/$line.gz; man2html -r en/man1/$line.gz > en/doc/htmlman1/$line.html; man en/man1/$line.gz > en/doc/txtman1/$line.txt ;;
(*_es.1) echo "line: $line"; cp -u $line es/.; gzip -c $line > es/man1/$line.gz; man2html -r es/man1/$line.gz > es/doc/html/$line.html; man es/man1/$line.gz > es/doc/txtman1/$line.txt ;;
[(*_fr.1) echo "line: $line"; cp -u $line fr/.; gzip -c $line > fr/man1/$line.gz; man2html -r fr/man1/$line.gz > fr/doc/htmlman1/$line.html; man fr/man1/$line.gz > fr/doc/txtman1/$line.txt ;;
(*_fr.UTF-8.1) echo "line: $line"; cp -u $line fr.UTF-8/.; gzip -c $line > fr.UTF-8/man1/$line.gz; man2html -r fr.UTF-8/man1/$line.gz > fr.UTF-8/doc/html/$line.html; man fr.UTF-8/man1/$line.gz > fr.UTF-8/doc/txtman1/$line.txt ;;
(*_ko.1) echo "line: $line"; cp -u $line ko/.; gzip -c $line > ko/man1/$line.gz; man2html -r ko/man1/$line.gz > ko/doc/html/$line.html; man ko/man1/$line.gz > ko/doc/txtman1/$line.txt ;;
esac
done < man1.list
#O Rename all man1/*_en.1.html man1/*.html
rm man1html.list
ls -R man1/*_en.1.html > man1html.list
ls -R de/man1/*_de.1.html >> man1html.list
ls -R en/man1/*_en.1.html >> man1html.list
ls -R es/man1/*_es.1.html >> man1html.list
ls -R fr/man1/*_fr.1.html >> man1html.list
ls -R fr.UTF-8/man1/*_fr.UTF-8.1.html >> man1html.list
ls -R ko/man1/*_ko.1.html >> man1html.list
if test -s man1html.list
then
while read newline
do
echo -n "newline : "
if echo $newline | grep "_en"; then echo $newline | sed "s/_en.1//g" > newname.txt;fi
if echo $newline | grep "_de"; then echo $newline | sed "s/_de.1//g" > newname.txt;fi
if echo $newline | grep "_es"; then echo $newline | sed "s/_es.1//g" > newname.txt;fi
if echo $newline | grep "_fr"; then echo $newline | sed "s/_fr.1//g" > newname.txt;fi
if echo $newline | grep "_fr.UTF-8"; then echo $newline | sed "s/_fr.UTF-8.1//g" > newname.txt;fi
if echo $newline | grep "_ko"; then echo $newline | sed "s/_ko.1//g" > newname.txt;fi
read Newname < newname.txt
echo "newname : $Newname"
mv $newline $Newname
done <man1html.list
fi
#O Rename all man1/*_en.1.txt man1/*.txt
rm man1txt.list
ls -R man1/*_en.1.txt > man1txt.list
ls -R de/man1/*_de.1.txt >> man1txt.list
ls -R en/man1/*_en.1.txt >> man1txt.list
ls -R es/man1/*_es.1.txt >> man1txt.list
ls -R fr/man1/*_fr.1.txt >> man1txt.list
ls -R fr.UTF-8/man1/*_fr.UTF-8.1.txt >> man1txt.list
ls -R ko/man1/*_ko.1.txt >> man1txt.list
if test -s man1txt.list
then
while read newline
do
echo -n "newline : "
if echo $newline | grep "_en"; then echo $newline | sed "s/_en.1//g" > newname.txt;fi
if echo $newline | grep "_de"; then echo $newline | sed "s/_de.1//g" > newname.txt;fi
if echo $newline | grep "_es"; then echo $newline | sed "s/_es.1//g" > newname.txt;fi
if echo $newline | grep "_fr"; then echo $newline | sed "s/_fr.1//g" > newname.txt;fi
if echo $newline | grep "_fr.UTF-8"; then echo $newline | sed "s/_fr.UTF-8.1//g" > newname.txt;fi
if echo $newline | grep "_ko"; then echo $newline | sed "s/_ko.1//g" > newname.txt;fi
read Newname < newname.txt
echo "newname : $Newname"
mv $newline $Newname
done <man1txt.list
fi
rm *.list newname*
exit 0
#O End of file docu2html.sh
 
# read inkey
</syntaxhighlight>