Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/addappendix.sh+annexer.sh

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche

addappendix.sh[modifier | modifier le wikicode]

  • français: addappendix est le programme qui lance tout le programme de création de l'annexe des livres de wikibooks
    • Il fait appel au programme pre-annex pour créer les répertoire et condition d'exécution du script annex
  • anglais: addappendix is ​​the program that launches the entire program for creating the appendix of wikibooks books
  • espagnol: addappendix es el programa que lanza todo el programa para crear el apéndice de libros de wikilibros
#!/bin/bash
#H Header Documentation of the addappendix.sh file
#H File addappendix.sh
#H Syntax: addappendix <full url of wiki-book> [ ? ] [ -v ] [ -pb | -pc ]
#H the syntax is necessary for the call of the command 'annex [ <book-name> || ? ] [ -v ] [ -pb || -pc ]'
#H   ?  to print syntax
#H   -v verbose mode
#H   -pb for illustration uploaded from wikibooks
#H   -pc for illustration uploaded from commons
#H
#D Documentation of addappendix.sh file
#D This script is the master program for creating the wiki-book appendix.
#D The firs parameter must be the full url to wikibooks book.
#D Syntax: addappendix <full url of wiki-book> [Options]
#D OPtions:
#D   ?  to print syntax
#D   -v verbose mode
#D   -pb for illustration uploaded from wikibooks
#D   -pc for illustration uploaded from commons
#D Subroutine scripts for 'addappendix' and 'addappendix' in order of execution:
#D Each of these scripts can be tested separately.
#D   pre-annex: create the directory structure of the book
#D   annex: is the master program which creates the appendix of the wiki-book
#D     header.inc: this file is included in all subroutine
#D     list: list files to download in project
#D     download: download listed files 
#D     add_sclt en_sclt.inc fr_sclt.inc: create chapter source, contributor, licence of articles
#D     add_sclic scli.inc en_sclic.inc: create standard illustration chapter src, contrib,lic
#D   add_sclipco en_sclipco.inc fr_sclipco.inc: create standard illustration chapter with src on commons
#D   add_sclipwb en_sclipwb.inc fr_sclipwb.inc: create standard illustration chapter with src on wikibooks
#D

VERSION=211006
TEXTDOMAIN=addappendix
TEXTDOMAINDIR="/usr/share/locale"
export TEXTDOMAINDIR

#P . gettext for translation
. gettext.sh

#O If not parameter 
    if test -z $1; then echo $"No parameter. < addappendix | annexer > [ <full url of wiki-book> | ? ]"; exit -1; fi
	if [ "$1" = "?" ]; then echo $"Syntax: < addappendix | annexer > [ <full url of wiki-book> | ? ] [ -v ] [ -pb | -pc ]"; exit 0; fi

#O If the command parameter is 'addappendix' then working directory is 'Add_appendix'
    echo $0 | grep addappendix > command.txt
	if test -s command.txt; then Workdir=$HOME/add_appendix; rm command.txt > /dev/null; fi
#O Elif the command parameter is 'annexer' then working directory is 'Annexer'
    echo $0 | grep annexer > command.txt
    elif test -s command.txt; then Workdir=$HOME/annexer; rm command.txt > /dev/null; fi
#O Else print Working directory is not found. Exit from script.
    else echo $"Working directory is not found. Exit from script."; exit -1
#O Fi
    fi
	
#O The books directory is '$Workdir/books' create it if not exist
    if test -d $Workdir/books
	then 
	  echo $"Working directory found: $Workdir"
	  echo $"script version: $VERSION"
	else
	  echo $"$Workdir/books is not found"
	  echo $"$Workdir/books creation" 
	  install -d $Workdir/books 
	fi

#O If the file installdir.var not exist, create it.
	if test -e $Workdir/vars/installdir.var
	then 
	  echo $"OK installdir.var exist"
	else
	  install -d $Workdir/books $Workdir/vars
	fi

#O Initialize installdir.var
    echo "Workdir=$Workdir" > $Workdir/vars/installdir.var
	if test -d $Workdir/bin 
	then
	  Installdir=$Workdir; echo "Installdir=$Workdir" >> $Workdir/vars/installdir.var
	  Bindir=$Workdir/bin; echo "Bindir=$Bindir" >> $Workdir/vars/installdir.var
	  Booksdir=$Workdir/books; echo "Booksdir=$Workdir/books" >> $Workdir/vars/installdir.var
	  Datasdir=$Workdir/datas; echo "Datasdir=$Workdir/datas" >> $Workdir/vars/installdir.var
	  Libdir=$Workdir/lib; echo "Libdir=$Workdir/lib" >> $Workdir/vars/installdir.var
	  Sharedir=$Workdir/share; echo "Sharedir=$Workdir/share" >> $Workdir/vars/installdir.var
	  Srcdir=$Workdir/src; echo "Srcdir=$Workdir/src" >> $Workdir/vars/installdir.var
	  Testdir=$Workdir/tests; echo "Testsdir=$Workdir/tests" >> $Workdir/vars/installdir.var
	  Varsdir=$Workdir/vars; echo "Varsdir=$Workdir/vars" >> $Workdir/vars/installdir.var
	else
	  Installdir=/usr/local; echo "Installdir=/usr/local" >> $Workdir/vars/installdir.var
	  Bindir=/usr/local/bin; echo "Bindir=$Bindir" >> $Workdir/vars/installdir.var
	  Booksdir=$Workdir/books; echo "Booksdir=$Workdir/books" >> $Workdir/vars/installdir.var
	  Datasdir=/usr/local/datas; echo "Datasdir=/usr/local/datas" >> $Workdir/vars/installdir.var
	  Libdir=/usr/local/lib; echo "Libdir=/usr/local/lib" >> $Workdir/vars/installdir.var
	  Sharedir=/usr/local/share; echo "$Sharedir=/usr/local/share" >> $Workdir/vars/installdir.var
	  Srcdir=/usr/local/src/Add_appendix; echo "Srcdir=/usr/local/src/Add_appendix" >> $Workdir/vars/installdir.var
	  Varsdir=$Workdir/vars; echo "Varsdir=$Workdir/vars" >> $Workdir/vars/installdir.var
	fi
#T test break cat $Workdir/vars/installdir.var; exit 0

#O Update variables from installdir.var if necessary
    # source $HOME/Add_appendix/vars/installdir.var

#O Test if first parameter is https and wikibooks site
    rm -f *.txt > /dev/null
	echo $1 | grep -e "wikibooks.org" > wikibooks-site.txt
	echo -n "wikibooks-site.txt: "; cat wikibooks-site.txt; echo
	if test -s wikibooks-site.txt
	then echo $"OK to continue with book site validation"; rm -f wikibooks-site.txt
	else echo $"First parameter entry is not a wikibooks site"; exit -1
	fi	
#T test break exit 0
#O Test if the url content a book file
    rm -fvalid-book-site.txt > /dev/null
    echo $1 | grep "Collection\|Compilation\|Content\|Contenu\|Sommaire\|Summary" > valid-book-site.txt
	if test -s valid-book-site.txt
	then echo $"OK to continue with pre-annex"; rm -f valid-book-site.txt
	else echo $"First parameter entry is not a valid book site"; exit -1
	fi
	
#O Valider les variables de mode bavard et Bindir Report-silent
    if [ "$2" = "-v" ] || [ "$3" = "-v" ]; then Verbose="true"; else Verbose="false"; echo $"Verbose mode = $Verbose"; fi


#P If not exist $Workdir/temp/Report-silent-mode create it
	if test -d $Workdir/temp/Report-silent-mode 
	then echo "$Workdir/temp/Report-silent-mode exist" > /dev/null
	else install -d $Workdir/temp/Report-silent-mode; fi
	
#P Running pre-annex
    echo; echo; echo "*** Continue with pre-annex ***"
    if [ $Verbose = "true" ]
    then 
	   echo "Verbose mode = true ? :$Verbose"
       $Bindir/pre-annex $1 $2 $3
    else
	  echo "Verbose mode = false ? $Verbose"
      $Bindir/pre-annex $1 > $Workdir/temp/Report-silent-mode/pre-annex-cmd.txt
    fi  
#P Test if $TESTDOMAIN=addappendix and restore if not
    if [ $TEXTDOMAIN != "addappendix" ]; then TEXTDOMAIN=addappendix; fi
#P Return value from pre-annex        
    Return=$?
    if [ $Return -gt '0' ]
    then
      echo "$(gettext ' Error in shell module pre-annex in silent mode. See $Workdir/temp/Report-silent-mode/pre-annex-cmd.txt ')"
      exit 1
    fi

#P Running annex
    echo; echo; echo "*** Continue with annex and sub-annex scripts ***"
#T    echo "$Varsdir +++ $Libdir"
	source $Libdir/annex.lib
	findbook $1
	echo "Bookname : $Bookname"
#T	exit 0
    if [ "$Verbose" = "true" ]
    then   
      $Bindir/annex $Bookname $2 $3
    else
      $Bindir/annex $Bookname $2 $3 > $Workdir/temp/Report-silent-mode/annex-cmd.txt
    fi 
    if [ $TEXTDOMAIN != "addappendix" ]; then TEXTDOMAIN=addappendix; fi
#P Return value from annex        
    Return=$?
    if [ $Return -gt '0' ]
    then
      echo "$(gettext ' Error in shell module annex in silent mode. See $Workdir/temp/Report-silent-mode/annex-cmd.txt ')"
      exit 1
    fi
exit 0
#O End of addappendix.sh

annexer.sh[modifier | modifier le wikicode]

  • annexer est le programme qui lance tout le programme de création de l'annexe des livres de wikibooks
    • annexer permet de créer la documentation en français, vérifie la validité de la ligne de commandes et fait appel à addappendix.
    • les traductions de addappendix en français font de annexer un programme en langue française
#!/bin/bash
#H Documentation de l'enête du fichier annexer.sh
#H File annexer.sh
#H syntaxe annexer <adresse url complète du livre> [ ? ] [ -v ] [ -pb | -pc ]
#H la syntaxe est nessessitée pour l'appel de:
#H   < addappendix | annexer > [ <full url of wiki-book> | ? ] [ -v ] [ -pb | -pc ]
#H   annex [ <book-name> || ? ] [ -v ] [ -pb || -pc ]
#H OPtions:
#H   ? pour demander la syntaxe
#H   -v est le mode bavard
#H   -pb pour illustration téléchargées sur wikilivres
#H   -pc pour illustration téléchargées sur commons
#H
#D Documentation du fichier annexer.sh
#D Ce scipt est le programme maître pour créer l'annexe des wiki-livres.
#D Le premier paramètre doit être l'adresse, (l'url) complète du livre.
#D Syntaxe: annexer <adresse url complète du livre> [Options]
#D OPtions:
#D   ? pour demander la syntaxe
#D   -v est le mode bavard de l'exécution des scripts enfants
#D   -pb pour illustration téléchargées sur wikilivres
#D   -pc pour illustration téléchargées sur commons
#D Scripts sous-programmes pour 'annexer' et 'addappendix' dans l'ordre d'exécution: 
#D Chacun de ces scripts est éprouvable séparément
#D   pre-annex: crée la structure des répertoires du livre
#D   annex: est le programme maître qui crée l'annexe du wiki-livre
#D     header.inc: 
#D     list 
#D     download 
#D     add_sclt en_sclt.inc fr_sclt.inc 
#D     add_sclic scli.inc en_sclic.inc
#D   add_sclipco en_sclipco.inc fr_sclipco.inc
#D   add_sclipwb en_sclipwb.inc fr_sclipwb.inc 
#D

VERSION=211006
TEXTDOMAIN=annexer
TEXTDOMAINDIR="/usr/share/locale"
export TEXTDOMAINDIR

#O Utiliser le script de addappendix commun aux deux versions avec la même traduction
#D L'installation commune dans /usr/local ne crée pas de répertoire bin dans le répertoire de travail
#D Ceci est mis à profit pour trouver les répertoire de travail et les binaires appropriés.
#D Lorsque l'installation est commune le répertoire de travail est toujours $HOME/Add_appendix 
if test -e $HOME/Annexer/bin/addappendix; then $HOME/Annexer/bin/addappendix $1 $2 $3
elif test -e /usr/local/bin/addappendix; then /usr/local/bin/addappendix $1 $2 $3
else echo $"the script addappendix is not found: in Annexer/bin nor in /usr/local/bin, exit"; exit -1
fi
#O End of annexer.sh