Auto-éditer un wikilivre/Annexer (Version internationalisée)/sbin/manuels/doc2html.sh
Apparence
.../tests/02-manuels/docu2html.sh
[modifier | modifier le wikicode]- La commande docu2html permet aux administrateurs de mettre les manuels à jour.
- Les manuels au format 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.
- 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.
#!/bin/sh
#H File docu2html.sh
#H Created by JPL
#H
#P Syntax docu2html.sh in in the manual creation directory .../tests/02-manuels/docu2html.sh
#P Example : ./doccu2html.sh dans le répertoire de création des manuels .../tests/02-manuels/docu2html.sh
#P ATTENTION éditer les manuels uniquement avec gedit ! ou gmanedit !
#P La commande docu2html nécessite l'installation de man2html-base
#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=211123
#O Include install variables
pwd > pwd.txt
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 *~
#
# man (1)
#
#O Create lang directories in current directory
mkdir -p de en es fr fr.UTF-8 ko
#O Create sub directories in lang directory
mkdir -p man1
mkdir -p de/man1
mkdir -p en/man1
mkdir -p es/man1
mkdir -p fr/man1
mkdir -p fr.UTF-8/man1
mkdir -p ko/man1
#O Create list of '*.1' files in current directory
ls -1 *.1 > man1.list
#O For 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"; gzip -c $line > de/man1/$line.gz; man2html -r de/man1/$line.gz > de/man1/*.html; man de/man1/$line.gz > de/man1/$line.txt ;;
(*_en.1) echo "line: $line"; gzip -c $line > en/man1/$line.gz; man2html -r en/man1/$line.gz > en/man1/$line.html; man en/man1/$line.gz > en/man1/$line.txt ;;
(*_es.1) echo "line: $line"; gzip -c $line > es/man1/$line.gz; man2html -r es/man1/$line.gz > es/$line.html; man es/man1/$line.gz > es/man1/$line.txt ;;
(*_fr.1) echo "line: $line"; gzip -c $line > fr/man1/$line.gz; man2html -r fr/man1/$line.gz > fr/man1/$line.html; man fr/man1/$line.gz > fr/man1/$line.txt ;;
(*_fr.UTF-8.1) echo "line: $line"; gzip -c $line > fr.UTF-8/man1/$line.gz; man2html -r fr.UTF-8/man1/$line.gz > fr.UTF-8/$line.html; man fr.UTF-8/man1/$line.gz > fr.UTF-8/man1/$line.txt ;;
(*_ko.1) echo "line: $line"; gzip -c $line > ko/man1/$line.gz; man2html -r ko/man1/$line.gz > ko/$line.html; man ko/man1/$line.gz > ko/man1/$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