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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m →‎install_annex.sh : Mise à jour des dates
m →‎header.inc.sh : Mise à jour de la barre
Ligne 115 : Ligne 115 :


=== header.inc.sh ===
=== header.inc.sh ===
{{Avancement|50|barre 4}} {{vert|<sup>vβ 210421</sup>}} {{vert|vβ}} [[Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/header.inc.sh]]<br />
{{Avancement|95|barre 4}} {{vert|<sup>vβ 210519</sup>}} {{vert|vβ}} [[Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/header.inc.sh]]<br />
<span style="font-size:75%>{{orange|L'internationalisation des messages est à reprendre}}</span>
<span style="font-size:75%>{{orange|L'internationalisation des messages est à reprendre}}</span>



Version du 19 mai 2021 à 18:22

Structure spéciale de cette page : Annexer_(Version_internationalisée)
L'article est structuré pour faciliter les téléchargements des codes sans perte d'information, directement ou grâce aux programmes mis à disposition.
Les applications de téléchargement disposent leurs propres programmes d'installation.
Le but final est de générer les pages Annexe des livres de wikibooks.
Notez que la page Index des livres n'est possible qu'à l'aide de programmes spécialisés comme OpenOffice, LibreOffice, ou autres.
En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.


Généralités

Structure simple des répertoires d'installation pour les tests, valable pour tous les systèmes d'exploitation
Le répertoire racine de la version française est ~/Annexer
Il n'y a aucun sous répertoire, les fichiers exécutables (sans l'extension .sh y sont téléchargés. Les fichiers de projets d'annexes sont automatiquement créés par l'application comme dans l'exemple ~/Annexer/LivreTest. Le fichier d'installation INSTALLER.sh peut créer des sous répertoires comme tmp, src, ou ressources dans lesquels on peut trouver des fichiers pour démarrer.
Installation rapide pour les tests
Copier le code ci-dessous (ctrl-c) coller ce code dans un terminal (ctrl-shift-v). Ce code crée aussi le sous-répertoire src qui n'est pas indispensable mais est pratique pour l'installation.
cd; mkdir Annexer; mkdir Annexer/src
Surligner les codes sources disponibles dans les sections suivantes,les copier et les enregistrer dans Annexer/src avec l'aide d'un éditeur de texte,
Copier les fichiers obtenus dans src : header.inc.sh, annexer.sh, list.sh, download.sh, add_sclt.sh, add_sclic.sh, add_sclip.inc.sh, sclipco.sh, sclipw.sh.
Ensuite, dans copier un terminal la ligne suivante (ctrl-shift + v):
cd; cd Annexer; cp src/*.sh .*; chmod 755 *
Dans le répertoire Annexer se trouvent maintenant tous les fichiers exécutables que l'on peut tester successivement, pour terminer par annexer
Essayer successivement : './header.inc', 'header.inc LivreTest' et examiner ce qui se passe dans le répertoire de travail Annexer et Annexer/LivreTest.
Télécharger les codes LivreTest.compilé que l'on doit coller dans le répertoire LivreTest
Essayer tous les modules : './list LivreTest', './download LivreTest', etc. et finir par './annexer LivreTest'
 Si tout va bien vous pourrez alors supprimer les répertoires et fichiers inutiles.
Structure plus technique, des répertoires d'installation sous linux pour les mainteneurs

Répertoires de base pour l'installation internationalisée

  • Le répertoire de travail pour créer les annexes : $Workdir doit être ~/Add_appendix
  • Le répertoire de mise au point des modules et des tests : ~/Add_appendix/tests
  • Les répertoires d'installation $Installdir peuvent être :
  • traditionnel, pour tous les utilisateurs : /usr/local quand tout sera vérifié.
  • par défaut, dans le répertoire personnel pour les essais : ~/Add_appendix'

Répertoires corollaires

  • Les codes sources internationalisés se trouvent dans le répertoire $Installdir/src
  • Répertoire des messages traduits : $Installdir/share/locale/en,es,fr/LC_MESSAGES/*.mo
  • Fichiers de bases pour les traductions $Workdir/resources/lang/po/header.inc.pot et $Workdir/resources/lang/po//annex.pot.
Remarques :
Les fichiers des traductions s'éditent avec Poedit
xgettext : est l'outil nécessaire pour extraire les messages repérées avec gettext dans les fichiers sources afin de les traduire avec Poedit.
faire attention, à ne pas oublier la ligne '. gettext.sh' en tête des fichiers sources à traduire.
Pour démarrer sous linux
Copier le fichier de commandes ci-dessous :
  1. Surligner le code de install_annex.sh ci-dessous puis le mettre en mémoire avec les touches Ctrl + c.
  2. Ouvrir un éditeur des textes, y coller le code (Ctrl + v).
  3. Enregistrer ce code sous le nom intall_annex.sh dans votre répertoire d'utilisateur, ~/tmp par exemple.
  4. Ouvrir un terminal et modifier son mode d'exécution pour que ce code soit exécutable (chmod 755 intall_annex.sh)
  5. Exécuter ./intall_annex.sh qui créera la structure des répertoires dans ~/Add_appendix par défaut.
  6. Copier ce code dans le répertoire sbin existant, sous le nom re-insttall_annex.sh et le rendre exécutable.
  7. Supprimer ce code d'installation install_annex.sh du répertoire utilisateur.
  8. Lorsque l'on est assuré que tout fonctionne, on peut relancer la commande avec le paramètre /usr/local
    On aura alors automatiquement accès aux manuels et aux langues étrangères.
~/annexer/sbin/install_annex.sh /usr/locaL. 
Attention: ces programmes d'installation sont encore cours d'essais le 28 mars 2021.
Ce programme est très complet pour assurer la maintenance

Modifier le script install_annex.sh

Description - Recommandations

  • install_annex.sh is tested with test_install_annex.bash and Copy2Tmp.bash
  • This script install Add_appendix or Annexer for single user or Add_appendix for all users
  • Syntax to install and tests: The scripts to tests are all in user working tests directory
$HOME/Tmp/test_install_annex.bash
  • Syntax to install directly:
$HOME/Tmp/install_annex.sh Add_appendix
$HOME/Tmp/install_annex.sh Annexer
$HOME/Tmp/install_annex.sh /usr/local

install_annex.sh

#! /bin/bash
#H File install_annex.sh in ~/tmp or re-install_annex.sh in /usr/local/sbin directory
#H Codage UTF-8 sans BOM
#H Syntax : ~/Add_appendix/sbin/install_annex.sh [Install directory | ? ]
#H   The installation directory can be /usr/local or /usr or ~/Annexer or ~/Add_appendixby default
#P Creation date     : 2020/06/10 by GC
#P Modification date : 2020/06/12 by GC 
#P Modification date : 2021/05/19 by GC
#P Last test date    : 2021/05/19 by GC
#P This program installs the directory structure for the annex program of wikibooks.
#P

#P . gettext for translation
#P . gettext.sh

#O Include function users_install_annex.sh
function users_install_annex ()
{
#T Tests
     echo "First param : $1"
#O Create variables : Workdir, Bindir
    if [ $1 = "Add_appendix" ]; then Workdir=~/Add_appendix; echo "Workdir = "$Workdir; fi
    if [ $1 = "Annexer" ]; then Workdir=~/Annexer; echo "Workdir = "$Workdir; fi
    if [ -d $Workdir ]; then echo " $Workdir is present."; else echo " $Workdir is not present, i create it."; mkdir $Workdir; fi
    
    Bindir="$Installdir/bin"; echo "Bindir : "$Bindir 
    if test -d $Bindir
    then echo " is ok." 
    else echo " not present, create it"; mkdir $Bindir 
    fi
#T Breakpoint exit 0

#O Create or recreate directory hierarchy
    cd $Workdir
    echo -n "The current directory to create $Workdir sub directories = "; pwd
    mkdir bin books datas lib man lib/src resources sbin share src temp tests vars
    cd $Workdir/tests
    echo "$Workdir/tests is the current directory to create sub tests directories."; pwd
    mkdir 00-install_annex 0-pre-annex.sh 1-annex.lib 2-annex.sh 3-header.inc.sh 4-list.sh 5-download.sh 6-add_sclt.sh
    mkdir 7-scli.inc.sh 8-add_sclic.sh 9-add_sclipco.sh 10-add_sclipwb.sh 11-annexer.sh 12-add_appendix.sh

    cd $Workdir/share
    echo "$Workdir/share is the current directory to create sub share directories."; pwd
    mkdir man doc doc/html 
    mkdir -p man man/{man1,fr,fr/man1,fr.UTF8,fr.UTF8/man1,es,es/man1}
    mkdir -p locale locale/{en,en/LC_MESSAGES,fr,fr/LC_MESSAGES,es,es/LC_MESSAGES}
#T Breakpoint exit 0

#O If findbook.sh, ecfpb.sh, ecfpc.sh, exist in the lib/src directory, build the annex.lib file
    if test -e $Workdir/lib/src/findbook.sh && test -e $Workdir/lib/src/ecfpb.sh && test -e $Wordir/lib/src/ecfpc
    then
      cat $Workdir/lib/src/findbook.sh | grep -v "#O\|#P\|#T" > $Workdir/lib/annex.lib
      cat $Workdir/lib/src/ecfpb.sh | grep -v "#O\|#P\|#T" >> $Workdir/lib/annex.lib
      cat $Workdir/lib/src/ecfpc.sh | grep -v "#O\|#P\|#T" >> $Workdir/lib/annex.lib
    else echo "annex.lib is not builded or not updated in $Workdir/lib/annex.lib"
    fi

#O If file annex.lib not exist in $Libdir and if file annex.lib.sh exist in $Libdir/src, 
    if test -z $Workdir/lib/annex.lib && test -e $Workdir/src/annex.lib.sh
    then cat $Workdir/src/annex.lib.sh | grep -v "#O\|#P\|#T" > $Workdir/lib/annex.lib
    fi
      
    rm $Workdir/vars/installdir.var
    echo "Installdir=$Installdir" > $Workdir/vars/installdir.var
    echo "Workdir=$Workdir" >> $Workdir/vars/installdir.var    
    echo; echo "Content of file $Workdir/vars/installdir.var"
    cat $Workdir/vars/installdir.var
	
	if [ "$1" = "Annexer" ]
	then 
	  echo; echo "First param = $1"
	  echo; echo "Se connecter à l'url :"
	  echo "https://fr.wikibooks.org/wiki/Autoéditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français"
	  echo "Copier les pages de codes, les coller dans un éditeur de texte et les enregistrer dans les répertoires spécialisés"
	  echo "Les fichiers : "
	  echo " sources, dans le répertoire $1/src"
	  echo " de données dans $1/datas"
	  echo " de librairies, dans $1/lib"
	  echo " d'exécutables de maintenance, dans  $1/sbin (chmod 755 * dans sbin)"
	  echo " de documentation dans $1/share/doc"
	  echo " de manuels dans $1/share/man"
	  echo "Utiliser cette version imprimable : "
	  echo "   https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/Version_imprimable"
	  echo "   pour copier les codes bash"
	  echo; echo "Finalement ré-exécuter cette commande ~/Annexer/sbin/users_install_annex.sh"
	fi
	  
	if [ "$1" = "Add_appendix" ] 
	then 
	  echo; echo "First param = $1"
	  echo; echo "Login to url :"
	  echo "https://fr.wikibooks.org/wiki/Autoéditer_un_wikilivre/Annexer_(Version_internationalisée)#Codes_sources_(internationalized_source_code)"
	  echo "Copy code pages in memory, paste them in a text editor and save in the specialized directory"
	  echo "The files :"
	  echo " sources in the directory Add_appendix/src"
	  echo " datas in Add_appendix/datas"
	  echo " library in Add_appendix/lib"
	  echo " executable for maintenance, in Add_appendix/sbin (chmod 755 * in sbin)"
	  echo " documentation in Add_appendix/share/doc"
	  echo " manuals in Add_appendix/share/man"
	  echo "Use this printable version : " 
	  echo "   https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/Version_imprimable"
	  echo "   to copy the bash code"
	  echo; echo "Finaly reexecute this command ~/Add_appendix/sbin/users_install_annex.sh"
	fi    
    echo

#O Initialize $Conversions variable
    Datasdir=$Workdir/datas; echo "Datadir = $Datasdir"
    Conversions=$Datasdir/conversions.dat; echo "Conversion file = $Conversions" 

#O Create or recreate the conversions.dat file in datas directory
    if test -e $Conversions
    then echo "The $Conversions file is present and will not be updated"
    else 
    {
      echo "s/%24/\$/g;s/%21/\!/g;s/%25/%/g;s/%2B/+/g;s/%3C/\\\&lt\;/g;s/%3E/\&gt\;/g;" > $Conversions
      echo "s/%5C/\\\/g;s/%B0/°/g" >> $Conversions
      echo "s/%E0/à/g;s/%E2/â/g" >> $Conversions
      echo "s/%E8/è/g;s/%E9/é/g;s/%EA/ê/g;s/%EB/ë/g" >> $Conversions
      echo "s/%EE/î/g;s/%EF/ï/g" >> $Conversions
      echo "s/%F4/ô/g" >> $Conversions
      echo "s/%F9/ù/g;s/%FB/û/g" >> $Conversions
      echo "s/%25/%/g;" >> $Conversions
      echo "s/%28/(/g;s/%29/)/g;" >> $Conversions
      echo "s/%2B/+/g;" >> $Conversions
      echo "s/%3A/:/g;" >> $Conversions
      echo "s/%3D/=/g;" >> $Conversions
      echo "s/%5B/[/g;" >> $Conversions
      echo "s/%5D/]/g" >> $Conversions
      echo "s/%3B/;/g;s/%2F/\//g;s/%27/'/g" >> $Conversions
      echo 's/%22/"/g' >> $Conversions
      echo "s/%C3%A7/ç/g;s/%E7/ç/g" >> $Conversions
      echo "s/%C3%A0/à/g;s/%C3%A2/â/g" >> $Conversions
      echo "s/%C3%A9/é/g;s/%C3%A8/è/g;s/%C3%AA/ê/g" >> $Conversions
      echo "s/%C3%AE/î/g;s/%C3%AF/ï/g" >> $Conversions
      echo "s/%C3%B4/ô/g" >> $Conversions
      echo "s/%C3%B9/ù/g;s/%C3%BB/û/g" >> $Conversions
      echo "s/%C2%B7/-/g;s/%C2%AB/«/g;s/%C2%BB/»/g" >> $Conversions
    }
    fi
    echo "----"

#O Initialize $Content_cleaner variable
    Content_cleaner=$Datasdir/content_cleaner.dat 
    echo "Content_cleaner = $Content_cleaner"
#O If not exist create the content_cleaner.dat  in datas directory
    if test -e $Content_cleaner
    then echo "The $Content_cleaner file is present and will not be updated"
    else 
    {
      echo "s/: \[/\[/g;s/:\[/\[/g" > $Content_cleaner
      echo "s/# \[/[/g;s/#\[/\[/g" >> $Content_cleaner
      echo "s/* \[/[/g;s/*\[/\[/g" >> $Content_cleaner
      echo "s/; /;/g" >> $Content_cleaner
    }
    fi
    echo "----"  
    
#O Initialize $Unrecognized_links variable
    Unrecognized_links=$Datasdir/unrecognized_links.dat
    echo "Unrecognized_links = $Unrecognized_links"
#O If not exist, create the file Unrecognized_links.dat
    #O If not exist create the content_cleaner.dat  in datas directory
    if test -e $Unrecognized_links
    then echo "The $Unrecognized_links file is present and will not be updated"
    else
    {
      echo "fr.wikibooks.org: unrecognized_link.dat ignore les liens non contenus dans les pages Résumé ou Sommaire"
      echo "title" > $Unrecognized_links
      echo "Spécial" >> $Unrecognized_links
      echo "Accueil" >> $Unrecognized_links
      echo "Vitrine" >> $Unrecognized_links
      echo "Tous_les_livres" >> $Unrecognized_links
      echo "Rechercher_un_livre" >> $Unrecognized_links
      echo "Wikijunior" >> $Unrecognized_links
      echo "Portail_communautaire" >> $Unrecognized_links
      echo "Le_Bistro" >> $Unrecognized_links
      echo "Special:" >> $Unrecognized_links
      echo "Aide:Accueil" >> $Unrecognized_links
      echo "propos_de" >> $Unrecognized_links
      echo "https://fr.wikibooks.org/wiki/Wikilivres" >> $Unrecognized_links
      echo "Wikilivres:" >> $Unrecognized_links
      echo "Catégorie:" >> $Unrecognized_links
      echo "en.wikibooks.org: unrecognized_link.dat ignore the uncontained Links in the Summary or Contents pages"
      echo "Main_Page" >> $Unrecognized_links
      echo "Help:Contents" >> $Unrecognized_links
      echo "Card_Catalog_Office" >> $Unrecognized_links
      echo "Cookbook:Table_of_Contents" >> $Unrecognized_links
      echo "Featured_books" >> $Unrecognized_links
      echo "Using_Wikibooks" >> $Unrecognized_links
      echo "Reading_room" >> $Unrecognized_links
      echo "Community_Portal" >> $Unrecognized_links
      echo "Reading_room/Bulletin_Board" >> $Unrecognized_links
      echo "Maintenance" >> $Unrecognized_links
      echo "Policies_and_guidelines" >> $Unrecognized_links
      echo "Contact_us" >> $Unrecognized_links
      echo "Welcome" >> $Unrecognized_links
      echo "General_disclaimer" >> $Unrecognized_links
      echo "Category:" >> $Unrecognized_links
    }
    fi
    echo "----"  
 
#O Write README in bin directory
#T echo "param 1 = $1"
    if [ "$1" = "Add_appendix" ]
    then
    echo "*** Write bin/README file "
    echo "README to use bin directory" > $Workdir/bin/README
    echo "This directory is reserved for commands without a '.sh' file suffix." >> $Workdir/bin/README
    echo "Commands without '.sh' are stripped of comments. They come from the" >> $Workdir/bin/README 
    echo "  'src' directory or from the 'tests' subdirectories." >> $Workdir/bin/README
    echo "Executables commands with '.sh', '.x' or .exe suffix are commands for" >> $Workdir/bin/README
    echo "  maintainers in 'sbin' directory" >> $Workdir/bin/README
    echo "*** Write README in Add_appendix"
    echo "README file in Add_apperdix" > $Workdir/README
    echo "Type ~/Add_appendix/bin/annex to launch the application" >> $Workdir/README
    fi
    
    if [ "$1" = "Annexer" ]
    then
    echo "*** écriture du fichier bin/LISEZ-MOI"
    echo "LISEZ-MOI pour l'utilisation du répertoire 'bin'" > $Workdir/bin/LISEZ-MOI
    echo "Ce répertoire est réservé aux commandes shell sans l'extension '.sh'." >> $Workdir/bin/LISEZ-MOI
    echo "Les commandes sans '.sh' proviennent du répertoire 'src' ou des sous-répertoires" >> $Workdir/bin/LISEZ-MOI
    echo "  des 'tests', dépouillées des commentaires." >> $Workdir/bin/README
    echo "Les exécutables avec l'extension 'sh', '.x' ou .exe sont des commandes" >> $Workdir/bin/LISEZ-MOI
    echo "  pour les mainteneurs dans le répertoire'sbin'" >> $Workdir/bin/LISEZ-MOI
    echo "*** écriture du fichier LISEZ-MOI dans Annexer"
    echo "Fichier LISEZ-MOI dans Annexer" > $Workdir/LISEZ-MOI
    echo "Taper ~/Annexer/bin/annex pour lancer l'application" >> $Workdir/LISEZ-MOI
    fi
    
#O When you run this script again, the message translation .pot files will be updated.
    if test -e $Installdir/bin/header.inc; then
      xgettext -L shell -o $Installdir/share/locale/header.inc.pot --from-code=UTF-8 $Installdir/bin/header.inc; fi
    if test -e $Installdir/bin/annex; then
      xgettext -L shell -o $Installdir/share/locale/annex.pot --from-code=UTF-8 $Installdir/bin/annex; fi
    echo "-----"    
    echo -e "\033[1;33mYou find Pot-files in $Workdir/share/locale for translations with 'Poedit':\033[0m"
    ls -R $Workdir/share/locale
    echo -e "\033[1;33mWhen you run this script again, the message translation .pot files will be updated.\033[0m"

    
#O Copy this program to $Workdir/sbin
    cp -Pu $0 $Workdir/sbin/users_install_annex.sh
    
#O Create the documentation of this program
    if test -e $Workdir/sbin/users_install_annex.sh; then cat $Workdir/sbin/users_install_annex.sh | grep -e "#D" | grep -v "if test" | sed 's/#D//g' > $Workdir/share/doc/users_install_annex.sh.doc; fi

#O Clean tmpfiles
    if test -d ~/tmp; then rm -r ~/tmp; fi
    
#O End of function users_install_annex          
}

#######################################################

#O clean screen
   clear;
   
#O Version
    VERSION=210919
    if [ "$1" = "--v" ]; then echo "Version of install_annex.sh $VERSION"; exit 0; fi

#O If the first parameter '$1' is empty or '?' print syntax.  
    if [ "$1" = "?" ]; then echo "Syntax for install_annex.sh: $0 [ <Install-directory> | ? | --v ]"; exit 0; fi
    if [ -z $1 ]; 
    then 
      echo "Syntax ~/Tmp/install_annex.sh [ --v | ? | Add_appendix | Annexer | /usr/local ]"; exit 0
    fi

#P Do not use sudo
    if [ $USER = "root" ]; then echo "USER = $USER"; echo "Do not use 'sudo' please."; exit -1; fi
  
#O Go to home directory and print the current directory.
    cd ~
    echo""; echo -n "current directory = "; pwd; echo ""
    
#O If the first parameter is not empty  
    if [ $1 ];
    then 
      if [ $1 = "/usr/local" ]; then  Installdir=$1; echo "Installdir = /usr/local"
      elif [ $1 = "Annexer" ]; then Installdir=~/Annexer; echo "Installdir = $Installdir"
      elif [ $1 = "Add_appendix" ]; then Installdir=~/Add_appendix; echo "Installdir = $Installdir"
      fi
    fi
    
    if [ $1 = "Annexer" ] || [ $1 = "Add_appendix" ]; then users_install-annex $1; exit 0; fi
    
    if [ $1 = "/usr/local" ]
    then 
      if test -d /usr/local/src/Add_appendix
      then echo "/usr/local/src/Add_appendix is present"
      else echo "/usr/local/src/Add_appendix is not found, create it."; sudo mkdir /usr/local/src/Add_appendix
      fi
#O Create variables
      Workdir=~/Add_appendix
      Booksdir=$Workdir/books
      Testsdir=$Workdir/tests
      Varsdir=$Workdir/vars
      Installdir=/usr/local
      Bindir=$Installdir/bin
      Includedir=$Installdir/include
      Libdir=$Installdir/lib
      Mandir=$Installdir/man
      Sbindir=$Installdir/sbin
      Sharedir=$Installdir/share
      Srcdir=$Installdir/src/Add_appendix
#P Extra directories added
      Datasdir=$Installdir/datas
      Resourcesdir=$Workdir/resources
#O Print variables        
      echo "Workdir=$Workdir"
      echo "Booksdir=$Booksdir"
      echo "Testsdir=$Testsdir"
      echo "Varsdir=$Varsdir"
      echo "Installdir=$Installdir"
      echo "Bindir=$Bindir"
      echo "Includedir=$Includedir"
      echo "Libdir=$Libdir"
      echo "Mandir=$Mandir"
      echo "Sbindir=$Sbindir"
      echo "Sharedir=$Sharedir"
      echo "Srcdir=$Srcdir"
      echo "Extra directory Datadir=$Datasdir"
      echo "Extra directory Resourcesdir=$Resourcesdir"        
#O Directives
        echo "Copy or update all sources .sh files in $Srcdir with root privilege."
    fi
#T Test break    exit 0

########################################"
#O Create or recreate directories
    mkdir -p $Varsdir $Booksdir $Resourcesdir $Resourcesdir/{lang,lang/po,lang/po/fr,lang/po/es,lang/man,man,man/en,man/es,man/fr}
    sudo mkdir -p $Datasdir

#O If findbook.sh, ecfpb.sh, ecfpc.sh, exist in the lib/src directory, build the annex.lib file
    mkdir $Workdir/lib
    if test -e $Srcdir/findbook.sh
    then sudo cat $Srcdir/findbook.sh | grep -v "#O\|#P\|#T" > $Workdir/lib/annex.lib
    sudo cp $Workdir/lib/annex.lib $Libdir/annex.lib
    else echo "findbook in annex.lib is not builded or not updated in $Libdir/annex.lib"
    fi
    rm -rf $Workdir/lib 
#    if test -e $Srcdir/ecfpb.sh; then cat $Srcdir/ecfpb.sh | grep -v "#O\|#P\|#T" >> $Libdir/annex.lib; fi
#    if test -e $Srcdir/ecfpc.sh; then cat $Srcdir/ecfpc.sh | grep -v "#O\|#P\|#T" >> $Libdir/annex.lib; fi
#O If they exist: install_datasfiles.sh in the lib/src directory, 
#O   then build this file and move to $Datasdir 
   if test -e $Srcdir/install_datasfiles.sh
   then 
     mkdir $Workdir/datas
     cp $Srcdir/install_datasfiles.sh $Workdir/datas/.; chmod 755 $Workdir/datas/install_datasfiles.sh
     $Workdir/datas/install_datasfiles.sh
     sudo cp -Rf $Workdir/datas/*.dat /usr/local/datas/. 
   else echo "install_datasfiles.sh not found in $Srcdir (datas files not updated in $Datasdir)"
   fi
   rm -r $Workdir/datas

#O Verify the content of datas dir
   if test -e $Datasdir/content_cleaner.dat; then echo "$Datasdir/content_cleaner.dat is found"; else echo "$Datasdir/content_cleaner.dat not found"; fi
   if test -e $Datasdir/conversions.dat; then echo "$Datasdir/conversions.dat is found"; esle echo "$Datasdir/conversions.dat is not found"; fi
   if test -e $Datasdir/unrecognized_links; then echo "$Datasdir/unrecognized_links is found"; else echo "$Datasdir/unrecognized_links is not found"; fi

#O Install cp-src2bin.shx, install_annex.shx, users_install_annex.shx, makeman_annex.shx, docu2html.shx
     mkdir $Workdir/sbin
     if test -e $Srcdir/cp-src2bin.sh; then cp $Srcdir/cp-src2bin.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/cp-src2bin.sh -o $Workdir/sbin/cp-src2bin.x; else echo "$Srcdir/cp-src2bin.sh not found"; fi
       if test -e $Workdir/sbin/cp-src2bin.x; then sudo cp $Workdir/sbin/cp-src2bin.x /usr/local/sbin/; fi
       
     if test -e $Srcdir/install_annex.sh; then cp $Srcdir/install_annex.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/install_annex.sh -o $Workdir/sbin/install_annex.x; else echo "$Srcdir/install_annex.sh not found"; fi
       if test -e $Workdir/sbin/install_annex.x; then sudo cp $Workdir/sbin/install_annex.x /usr/local/sbin/; fi
       
     if test -e $Srcdir/users_install_annex.sh; then cp $Srcdir/users_install_annex.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/users_install_annex.sh -o $Workdir/sbin/users_install_annex.x; else echo "$Srcdir/users_install_annex.sh not found"; fi
       if test -e $Workdir/sbin/users_install_annex.x; then sudo cp $Workdir/sbin/users_install_annex.x /usr/local/sbin/; fi
       
     if test -e $Srcdir/makeman_annex.sh; then cp $Srcdir/makeman_annex.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/users_install_annex.sh -o $Workdir/sbin/users_install_annex.x; else echo "$Srcdir/makeman_annex.sh not found"; fi
       if test -e $Workdir/sbin/users_install_annex.x; then sudo cp $Workdir/sbin/users_install_annex.x /usr/local/sbin/; fi
       
     if test -e $Srcdir/docu2html.sh; then cp $Srcdir/docu2html.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/docu2html.sh -o $Workdir/sbin/docu2html.x; else echo "$Srcdir/docu2html.sh not foud"; fi
       if test -e $Workdir/sbin/docu2html.x; then sudo cp $Workdir/sbin/docu2html.x /usr/local/sbin/; fi

     if test -e $Srcdir/install_datasfiles.sh; then cp $Srcdir/install_datasfiles.sh $Workdir/sbin/.; shc -r -v -f $Workdir/sbin/install_datasfiles.sh -o $Workdir/sbin/install_datasfiles.x; else echo "$Srcdir/install_datasfiles.sh not foud"; fi
       if test -e $Workdir/sbin/install_datasfiles.x; then sudo cp $Workdir/sbin/install_datasfiles.x /usr/local/sbin/; fi
#    rm -rf $Workdir/sbin
exit 0
#O Create function cpcleaned2bin
function cpcleaned2bin
{
#O Cleaner
    mkdir -p $Workdir/tmp 
    sudo cat $Srcdir/$1.sh | grep -v "#O\|#P\|#T" | sed "s/eval_gettext /echo \$/g" | sed "s/; echo//g" \
    | sed "s/\"\$(gettext '/\$\"/g" | sed "s/' )//g" | sed "s/')//g" > $Workdir/tmp/$1
    sudo cp $Workdir/tmp/$1 $Bindir/$1
    if echo $Bindir/$1 | grep ".inc"; then sudo chmod 644 $Bindir/$1; else sudo chmod 755 $Bindir/$1; fi
#O Create new .pot file
    xgettext -L shell -o $Resourcesdir/lang/po/$1.pot --from-code=UTF-8 $Bindir/$1
#O Create or update fr .po files
    if test -z $Resourcesdir/lang/po/fr/$1.po
    then cp $Resourcesdir/lang/po/$1.pot $Resourcesdir/lang/po/fr/$1.po
    else msgmerge --update $Resourcesdir/lang/po/fr/$1.po $Resourcesdir/lang/po/$1.pot
    fi
#O Create or update fr .mo files in resources directory 
    msgfmt $Resourcesdir/lang/po/fr/$1.po -o $Resourcesdir/lang/po/fr/$1.mo
    echo -e "\033[1;33m### Only if you are edit and update $1.po with Poedit: ###\033[0m"
    echo "copy $Resourcesdir/lang/po/fr/$1.mo to /usr/share/locale/fr/LC_MESSAGES/$1.mo"
    
#O Create or update es .po files
    if test -z $Resourcesdir/lang/po/es/$1.po
    then cp $Resourcesdir/lang/po/$1.pot $Resourcesdir/lang/po/es/$1.po
    else msgmerge --update $Resourcesdir/lang/po/es/$1.po $Resourcesdir/lang/po/$1.pot
    fi
#O Create or update fr .mo files in resources directory 
    msgfmt $Resourcesdir/lang/po/es/$1.po -o $Resourcesdir/lang/po/es/$1.mo
    echo -e "\033[1;33m### Only if you are edit and update $1.po with Poedit: ###\033[0m"
    echo "copy $Resourcesdir/lang/po/es/$1.mo to /usr/share/locale/es/LC_MESSAGES/$1.mo"
}

#O Clean program sources files and add .pot files
# add_sclic
    if [ -e $Srcdir/add_sclic.sh ]; then cpcleaned2bin add_sclic; else echo "$Srcdir/add_sclic.sh not found"; fi
# add_sclipco
    if [ -e $Srcdir/add_sclipco.sh ]; then cpcleaned2bin add_sclipco; else echo "$Srcdir/add_sclipco.sh not found"; fi
# add_sclipwb
    if [ -e $Srcdir/add_sclipwb.sh ]; then cpcleaned2bin add_sclipwb; else echo "$Srcdir/add_sclipwb.sh not found"; fi
# add_sclt
    if [ -e $Srcdir/add_sclt.sh ]; then cpcleaned2bin add_sclt; else echo "$Srcdir/add_sclt.sh not found"; fi
# annex
    if [ -e $Srcdir/annex.sh ]; then cpcleaned2bin annex; else echo "$Srcdir/annex.sh not found"; fi
# download
    if [ -e $Srcdir/download.sh ]; then cpcleaned2bin download; else echo "$Srcdir/download.sh not found"; fi
# en_sclic.inc
    if [ -e $Srcdir/en_sclic.inc.sh ]; then cpcleaned2bin en_sclic.inc; else echo "$Srcdir/en_sclic.inc.sh not found"; fi
# en_sclipco.inc
    if [ -e $Srcdir/en_sclipco.inc.sh ]; then cpcleaned2bin en_sclipco.inc; else echo "$Srcdir/en_sclipco.inc.sh not found"; fi
# en_sclipwb.inc
    if [ -e $Srcdir/en_sclipwb.inc.sh ]; then cpcleaned2bin en_sclipwb.inc; else echo "$Srcdir/en_sclipwb.inc.sh not found"; fi
# en_sclt.inc
    if [ -e $Srcdir/en_sclt.inc.sh ]; then cpcleaned2bin en_sclt.inc; else echo "$Srcdir/en_sclt.inc.sh not found"; fi
# fr_sclic.inc
    if [ -e $Srcdir/fr_sclic.inc.sh ]; then cpcleaned2bin fr_sclic.inc; else echo "$Srcdir/fr_sclic.inc.sh not found"; fi
# fr_sclipco.inc
    if [ -e $Srcdir/fr_sclipco.inc.sh ]; then cpcleaned2bin fr_sclipco.inc; else echo "$Srcdir/fr_sclipco.inc.sh not found"; fi
# fr_sclipwb.inc
    if [ -e $Srcdir/fr_sclipwb.inc.sh ]; then cpcleaned2bin fr_sclipwb.inc; else echo "$Srcdir/fr_sclipwb.inc.sh not found"; fi
# fr_sclt.inc
    if [ -e $Srcdir/fr_sclt.inc.sh ]; then cpcleaned2bin fr_sclt.inc; else echo "$Srcdir/fr_sclt.inc.sh not found"; fi
# header.inc
    if [ -e $Srcdir/header.inc.sh ]; then cpcleaned2bin header.inc; else echo "$Srcdir/header.inc.sh not found"; fi
# list
    if [ -e $Srcdir/list.sh ]; then cpcleaned2bin list; else echo "$Srcdir/list.sh not found"; fi
# pre-annex
    if [ -e $Srcdir/pre-annex.sh ]; then cpcleaned2bin pre-annex; else echo "$Srcdir/pre-annex.sh not found"; fi
# scli.inc
    if [ -e $Srcdir/scli.inc.sh ]; then cpcleaned2bin scli.inc; else echo "$Srcdir/scli.inc.sh not found"; fi

    
#O List the Installdir/src directory and recreate the tmp/shell_files.prj
#P    if test -e ~/tmp; then  rm -r ~/tmp; fi
#P    mkdir ~/tmp 
#P    ls $Srcdir/*.sh > ~/tmp/shell_files.prj
#T Breakpoint exit 0

#O While line read in shell_files.prj
#P    while read line
#P    do
#O   Read $line, delete comments, write the result in Testdir directory for the Units Tests.
#P      echo $line | awk -F "/" '{print $NF}' > ~/tmp/tmpfile.txt
#P      read file < ~/tmp/tmpfile.txt
#T	  echo " file = "$file
#P      mkdir $Testdir/$file
#P      cp $Srcdir/$file $Testdir/$file/$file; chmod 755 $Testdir/$file/$file
#P    done < ./tmp/shell_files.prj
#O Clean tmpfile
#P    rm ~/tmp/tmpfile.txt
#P   rm -r ~/tmp

#O Message of the tasks to be accomplished.  
    echo "-----"
    echo "Tasks to be accomplished :"
	echo "Modify these files as functions"
    echo "Integrate functions in the librairie $Libdir/annex.lib"
    echo "Copy include files in $Includedir"
#    echo "Copy $Srcdir/install_annex.sh in $Sbindir"
    echo "See also users_install_annex.sh, best command for user"
    
#O Put install dirs to  /vars/installdir.var   
    rm $Workdir/vars/installdir.var
    echo "Installdir=$Installdir" > $Varsdir/installdir.var
    echo "Workdir=$Workdir" >> $Varsdir/installdir.var 
    echo "Booksdir=$Booksdir" >> $Varsdir/installdir.var 
    echo "Testsdir=$Testsdir" >> $Varsdir/installdir.var 
    echo "Varsdir=$Varsdir" >> $Varsdir/installdir.var 
    echo "Bindir=$Bindir" >> $Varsdir/installdir.var 
    echo "Includedir=$Includedir" >> $Varsdir/installdir.var 
    echo "Libdir=$Libdir" >> $Varsdir/installdir.var 
    echo "Mandir=$Mandir" >> $Varsdir/installdir.var 
    echo "Sbindir=$Sbindir" >> $Varsdir/installdir.var 
    echo "Sharedir=$Sharedir" >> $Varsdir/installdir.var 
    echo "Srcdir=$Srcdir" >> $Varsdir/installdir.var 
    echo "Extra directory Datadir=$Datasdir" >> $Varsdir/installdir.var 
    echo "Extra directory Resourcesdir=$Resourcesdir" >> $Varsdir/installdir.var           
    echo; echo "Content of file $Varsdir/installdir.var"
    cat $Varsdir/installdir.var
    
#O Clean tmpfiles
    if test -d ~/tmp; then rm -r ~/tmp; fi
    if test -d $Workdir/tmp; then rm -r $Workdir/tmp; fi
   
#O End 'install_annex.sh'

test_install_annex.bash

#!/bin/bash
#P File : test_install_annex.bash
#H Usage : ~/Tmp/test_install_annex.bash [ --v | ? | Annexer | Add_appendix ]
#H

#P Creation date     : 2021/07/27 by GC
#P Update and tests  : 2021/07/27 by GC
#P

#D This Documentation is included in source file
#H Header of file included in source file
#O Organigram of program included in source file
#P Comments for programmers included in source file
#S Structure comments of program included in source file
#w Warnings comments in program included in source file

#O clean screen
    clear

# Copy files to Tmp directory
    ./Copy2Tmp.bash

#O Version
    unset $VERSION
    VERSION=210917

    if [ "$1" = "--v" ]; then echo "Version of test_install_annex.bash "$VERSION; exit 0; fi

#O If the first parameter '$1' is '?' print syntax.  
    if [ "$1" = "?" ]
    then 
    echo "$HOME/Tmp/test_install_annex.bash [ --v | ? | Annexer | Add_appendix | /urs/local ]"; exit 0
    fi
    
#O If the first parameter '$1' is empty print syntax.
#T echo "param 0 = $0; param 1 = $1" exit 0
    if [ "$0" != "$HOME/Tmp/test_install_annex.bash" ] || [ -z $1 ]
    then
      echo "Copy test_install_annex.bash in ~/Tmp directory"
      echo "Syntax $HOME/Tmp/test_install_annex.bash [ --v | ? | Add_appendix | Annexer | /usr/local ]"
    fi
#T Test break  exit 0 
#O Test whishout firstparam
    echo "Test whishout firstparam"
    $HOME/Tmp/install_annex.sh
    sleep 3
#O Test --v
    echo "Test VERSION with '--v'"
    $HOME/Tmp/install_annex.sh --v
    sleep 3
#O Test ?
    echo "Test syntax with '?'"
    $HOME/Tmp/install_annex.sh ?
    sleep 4
#O Choose Annexer or Add_appendix
    echo -n "Choose Annexer inkey '1' or Add_appendix inkey '2' or /usr/local inkey '3': "
    read Inkey
    if [ "$Inkey" == "1" ]
    then 
#O Test Annexer
    $HOME/Tmp/install_annex.sh Annexer
    echo "Contenu du répertoire Annexer :" 
    ls -al ~/Annexer
    echo "Contenu des sous-répertoires"
    ls -al ~/Annexer/datas ~/Annexer/lib ~/Annexer/lib/src ~/Annexer/sbin ~/Annexer/share/doc ~/Annexer/vars
    exit 0
    elif [ "$Inkey" == "2" ]
    then
#O Test Add_appendix
    $HOME/Tmp/install_annex.sh Add_appendix
    echo "Add_appendix directory :"
    ls -al ~/Add_appendix
    echo "Contents of sub-directories :"
    ls -al ~/Add_appendix/datas ~/Add_appendix/lib ~/Add_appendix/lib/src ~/Add_appendix/sbin ~/Add_appendix/share/doc ~/Add_appendix/vars
    exit 0 
    elif [ "$Inkey" == "3" ]
    then
#O Test /usr/local
    $HOME/Tmp/install_annex.sh /usr/local
    ls -al ~/Add_appendix ~/Add_appendix/vars ~/Add_appendix/resources
    echo; echo "Contents of /usr/local sub-directories :"
    ls -al /usr/local/src/Add_appendix /usr/local/datas /usr/local/lib /usr/local/sbin
    exit 0
#O Else print syntax
    else $HOME/Tmp/install_annex.bash ?
    fi
#O End test_install_annex.bash

Copy2Tmp.bash

#!/bin/bash
#H File Copy2Tmp.bash in $Workdir/tests/00-install_annex directory
VERSION=210818
cp -u test_users_install_annex.bash ~/Tmp/.; chmod 766 ~/Tmp/test_users_install_annex.bash
cp -u users_install_annex.sh ~/Tmp/.; chmod 766 ~/Tmp/users_install_annex.sh
cp -u users_install_annex.sh.x ~/Tmp/.
#
cp -u test_install_annex.bash ~/Tmp/.; chmod 766 ~/Tmp/test_install_annex.bash
cp -u install_annex.sh ~/Tmp/.; chmod 766 ~/Tmp/install_annex.sh
#P End of file Copy2Tmp.bash
L'exécutable cp-src2bin.sh vient en complément de la création de la structure des répertoires par le fichier de commandes install_annex.sh
la commande install_annex.sh ou re-install_annex.sh doit ensuit être ré-exécutée pour créer les fichier de traductions .pot

Modifier le script cp-src2bin.sh

Compil2bin.sh

  • Attention this script is common for lib, sbin, and src for Add_appendix software
  • this script is used in package addappendix-O~210927
#!/bin/bash
#H Header of compil2bin.sh
#H ------------------------
#H File    : compil2bin.sh product compiled files in bindir and doumentation,
#H         :   pot files and more. See cpcleadned2bin.sh in lib directory
#H Syntax  : compil2bin [--v|srcdir] [bindir|sbindir|libdir] [list-of-files.sh] [--t]
#H OPTIONS : --v, print version of compil2bin in test mode
#H         : --t, clear screen and print parameters: version, srcdir, bindir, third parameter is present in test mode
#H         : srcdir bindir, is source .sh shell directory, bindir is bin directory to receive compiled files
#H         : list-of-files.sh, is the list of files in srcdir to convert for bin directory
#H

VERSION=211113

    pwd > pwd.txt
    read Currentdir<pwd.txt

    cat pwd.txt | cut -d "/" -f4 > workname.txt
    read Workname<workname.txt
#T	echo -n "Working name directory= $Workname"
	if [ $Workname = "Annexer" ] || [ $Workname = "Add_appendix" ]
	then echo -n "" #T echo " is found"; 
	else echo " Currentdir is not a working name directory"; exit -1
	fi
    rm workname.txt pwd.txt

    
    Workdir=~/$Workname
    Libdir=$Workdir/lib
	
	source $Workdir/vars/installdir.var
#T  echo "Install directory : $Installdir"
#T  echo "Working dir : $Workdir"
#T  echo "Sources = $1 ; Bin is : $2"; exit 0

#O Si le premier paramètre est vide afficher la syntaxe
    if test -z "$1"
    then 
       echo "Syntax : compil2bin [--v|srcdir] [bindir|sbindir|libdir] [list-of-shell-files] [--t]"
      exit -1
    fi 
    

#O Afficher la version si le premier argument est --v
if [ "$1" = "--v" ]; then echo "compil2bin : VERSION $VERSION"; exit 0; fi

#O If file-list is empty create file_list from SRC
    #if test -z $3; then ls -1 $1 > file-list; fi

#O Afficher les paramètres si
    N=$#
    if [ "$N" = "--t" ] 
	then 
	  clear screen 
	  echo "compil2bin version $VERSION"
	  echo "Directories: "
	  echo "SRC=$1, BIN=$2"
	  if test -e $3; then echo "file list is not empty, see forward."; fi
	  exit 0
	fi
	
#O if [ "$1" = "compil2bin.sh" ]; then echo "cannot self extracting compil2bin.sh"; exit -1; fi

#O Affect Srcdir variable (#P if then else détaillé à cause des pertes d'information. éviter les ';')
    if test -d $1
    then 
      echo "Sources directory is found: $1"
      Srcdir=$1
    else 
      echo "Sources directory is not found"
      exit -1
    fi
	
#O Affect Bindir variable
    if test -d $2
    then 
      echo "Bin directory is found: $2"
      Bindir=$2
    else 
      echo "Bin directory is not found"
      exit -1
    fi
	
#O Affect Resourcesdir variable
    if test -d "$Workdir/share/addappendix/resources"
    then 
      Resourcesdir="$Workdir/share/addappendix/resources"
      echo "Variable Resources is found $Resourcesdir"
    fi

#O Indicate the number of pameters
	echo "Number of parameter : $#"    
    
#T exit 0

#P include $Libdir/annex.lib to access at cpcleaned2bin function
source $Libdir/annex.lib

#O If the commandline hat only two parameters then compile all lines
    if [ "$N" = "2" ] 
    then	  
      Pwd=$PWD; cd $1; ls -1 *.sh > $Pwd/list.txt; cd $Pwd
      while read line
      do
        echo "Line of list.txt: $line"
        cpcleaned2bin $line
      done < $Pwd/list.txt
#O Else create loop to ...for i in `seq 1 $#`
    else
      for i in "$@"
      do
        if test $i != $1 && test $i != $2
	    then
          echo "$i"
          cpcleaned2bin $i
	    fi
     done
   fi
exit 0  

#D
#D Documentation for compil2bin shell file
#D ----------------------------------------
#D Compil2bin is used in package to product addappendix-<version>.deb and
#D   to copy sources files to bin directories.
#D
#D Makefile syntax: compil2bin SRC-OPTIONS BIN-OPTIONS <file-list>
#D   SRC-OPTIONS: [ $(SRCS) | $(SBINS) | $(SLIBS) ]
#D   BIN-OPTIONS: [ $(BIN) | $(SBIN) | $(LIB) ]
#D   <file-list> are shell files list to compil from SRC directory
#D
#D Shell syntax: compil2bin [--v|srcdir] [bindir|sbindir|libdir] [list-of-shell-files] [--t]
#D
#D Examples: with file-list: users_install_annex.sh and install_annex.sh in SRC.
#D  compil2bin srcdir bindir
#D or: compil2bin srcdir bindir $Parameters
#D  $Parameters is variable content the list of files with .sh extensions
#D
#D The compilation consists of eliminating the tags of Documentation, Manual,
#D   Organization-charts, Programmers-doc Tests-doc and producing .pot .po files
#D   with cpcleaned2bin function, for the translations, can also update .mo files.
#D

#P Note: The manuals must be extracted with the command grep -v "#M ". 
#P There must always be a space between #M and the text to extract.
#M .\ Manual man1 extraction: cat compil2bin.sh | grep "#M " | sed "s/#M //g" | grep -v "#P" > compil2bin_en.1 
#M .\ This manual is included in compil2bin.sh source file
#M .\"Replace <program> with the program name, x with the Section Number
#M .TH compil2bin 1 "5 nov 2021" "compil2bin(1)" "Linux User's Manual"
#M .SH NAME
#M compi2bin \- compilation program consists of eliminating the tags of Documentation, Manual, Organization-charts, Programmers-doc Tests-doc and producing .pot .po files for the translations, can also update .mo files.
#M .SH SYNOPSIS
#M .B compil2bin
#M .RI $(SRC)\ [$(BIN)|$(SBIN)|$(LIB)]\ [files-list]\ in\ Makefile
#M .br
#M .B compil2bin
#M .RI [--v|srcdir]\ [bindir|sbindir|libdir]\ [files-list]\ [--t]
#M .br
#M in\ Add-appendix\ software
#M .br
#M .SH DESCRIPTION
#M This manual page explains the \fBcompil2bin\fP program. The \fBcompil2bin\fP program is included in Makefile to install sources files in binary directories such as bin lib sbin  and product .pot  .po .mo files to lang resources directories. If you are edit and saved po files you can copy .mo files to /usr/share/locale/lang/LC_MESSAGES/.
#M .SH OPTIONS
#M .IP \fB\-\ [--v]\fP
#M Print the compil2bin version 
#M .IP \fB\-\ $(SRC)\ and\ srcdir\fP
#M This variable is used in makefile example: SRC=/usr/local/src or srcdir=$Workdir/src\ in \fBAdd_appendix\fP software
#M .IP \fB\-\ [$(BIN)|$(SBIN)|$(LIB)]\ and\ [bindir|sbindir|libdir]\fP
#M This variables are used in makefile example: SBIN=/usr/local/sbin or bindir=$Bindir sbindir=$Sbindir libdir=$Libdir in \fBAdd_appendix\fP software
#M .IP \fB\-\ [file-list]\fP
#M This arguments list are list of files to convert and install to $(BIN) or $(SBIN) or $(LIB)
#M .IP \fB\-\ [--t]\fP
#M Print the compil2bin variables in current command execution
#M .br
#M .SH EXAMPLES
#M .B compil2bin
#M .RI $Srcdir\ $Bindir
#M .br
#M .B compil2bin
#M .RI $Currentdir/src\ $Currentdir/bin\ $Parameters
#M .br
#M Variable \fB$Parameters\fP content the list of files to convert
#M .br
#M .SH NOTES
#M To complete your information:
#M https://fr.wikibooks.org/wiki/Annexes_de_wikibooks#Makefile_proposé_aux_essais
#M .SH "SEE ALSO"
#M addapendix packages
#M
#O End of compil2bin

old version cp-src2bin.sh

WARNING, this is an old version revised on Sep 18, 2021
Install this executable shell code in sbin ( /usr/local/sbin | ~/Add_appendix/sbin | ~/Annexer/sbin )
Installer ce code shell exécutable dans sbin
espagnol ; Instale este código de shell ejecutable en sbin
#! /bin/bash
#P File : .../sbin/cp-src2bin.sh. This file must be copied in executable mode
#P Copy the source files to the executables directory.
#P The tests directory is used to individual test bash files from annex programm.

clear

VERSION=210419

if [ "$1" = "--v" ]; then echo "cp-src2bin.sh : VERSION $VERSION rrevised on Sep 18, 2021"; exit 0; fi

#P Find the current directory
    pwd > pwd.txt
    read Currentdir<pwd.txt

#P Find the working name directory
    cat pwd.txt | cut -d "/" -f4 > workname.txt
    read Workname<workname.txt
	echo -n "Working name directory= $Workname"
	if [ $Workname = "Annexer" ] || [ $Workname = "Add_appendix" ]
	then echo " is found"; 
	else echo " is not a working name directory"; exit -1
	fi
	
#P Find full directories install, working etc.
	source ~/$Workname/vars/installdir.var
    echo "Install directory : $Installdir"
	echo "Working dir : $Workdir"

#T Test break exit 0

#P Make list files.pj 
    echo "Make files list from src directory in files.pj"
    ls -1 $Installdir/src/*.sh > files.pj

#P If files.pj is not empty copy all files *.sh to executable directory
    if [ -s "files.pj" ]
    then
      echo "files in files.pj :"
      cat files.pj
    else
      echo "files.pj is empty, exit from cp-src2bin.sh"
      exit 1
    fi

#P Copy copy without extension .sh, and make files executables
    echo "#####################################################################"
    echo "# Warning: this script move all src/*.sh to bin/* without comments. #"
    echo "# Warning: is not available to product POT files for translations.  #"
    echo "#####################################################################"
    while read line
    do
#T      echo "copy the ligne $line from files.pj '.sh' in the file exename without extension .sh"
      echo $line | sed s/.sh//g | awk -F "/" '{print $NF}'> exename.txt

#P   Affect the value in 'exename.txt' at the variable $Exename
      read Exename < exename.txt
      echo "copy $Installdir/src/$Exename.sh to $Installdir/bin/$Exename"
      cat $Installdir/src/$Exename.sh | grep -v "#O\|#P\|#T" >  $Installdir/bin/$Exename
      echo "Add mode 755 'executable' at file $Installdir/bin/$Exename"
      chmod 755 $Installdir/bin/$Exename
      echo "----"
    done < files.pj
#T Breakpoint exit 0

#P clean sbin directory
    rm files.pj pwd.txt exename.txt

#P End cp-src2bin

test_compil2bin.bash

  • test program is in $Testdir/01-sbsrc/O11/compil2bin.sh/
  • This test program also makes the manual copyable to /usr/share/man/man1/.
  • syntax: sudo cp compil2bin_en.1.gz /usr/share/man/man1/compil2bin.1.gz
#!/bin/bash
#H File test_compil2bin.bash
#H

VERSION=211105

    pwd > pwd.txt
    read Currentdir<pwd.txt

    cat pwd.txt | cut -d "/" -f4 > workname.txt
    read Workname<workname.txt
#T	echo -n "Working name directory= $Workname"
	if [ $Workname = "Annexer" ] || [ $Workname = "Add_appendix" ]
	then echo -n "" #T echo " is found"; 
	else echo " Currentdir is not a working name directory"; exit -1
	fi
    rm workname.txt pwd.txt

    
    Workdir=~/$Workname
    Libdir=$Workdir/lib
	
	source $Workdir/vars/installdir.var
    
    Testsdir=$Workdir/tests
    
clear

if [ "$1" = "--v" ]; then echo "Version of test_compil2bin.bash $VERSION";exit 0;fi

echo -e "\033[1;33mcommande ./compil2bin.sh --v \033[0m"
./compil2bin.sh --v
sleep 3
echo "----"

echo -e "\033[1;33mcommande ./compil2bin.sh --v --t \033[0m"
./compil2bin.sh --v --t
sleep 3
echo "----"

echo -e "\033[1;33mcommande ./compil2bin.sh src bin --t \033[0m"
./compil2bin.sh src bin --t
sleep 3
echo "----"

echo -e "\033[1;33mcommande ./compil2bin.sh src bin compil2bin.sh --t; ls -1 bin after 3 sec \033[0m"
./compil2bin.sh src bin compil2bin.sh --t
sleep 3
echo -e "\033[1;33m  ls -1 bin: \033[0m"; ls -1 bin
echo -e "\033[1;33m  make local manual of compil2bin wtith compil2bin.sh \033[0m"
cat compil2bin.sh | grep "#M " | sed "s/#M //g" | grep -v "#P" > compil2bin_en.1 
gzip compil2bin_en.1 compil2bin_en.1.gz
mv compil2bin_en.1.gz man/compil2bin_en.1.gz
man man/compil2bin_en.1.gz
sleep 3
echo "----"

echo -e "\033[1;33m./compil2bin.sh $Currentdir/src $Currentdir/bin \033[0m"
./compil2bin.sh $Currentdir/src $Currentdir/bin
sleep 3
ls -al bin
echo "----"

echo -e "\033[1;33m./compil2bin.sh $Currentdir/src $Currentdir/bin compil2bin.sh cp-src2bin.sh docu2html.sh findversions.sh install_annex.sh install_datasfiles.sh makeman_annex.sh users_install_annex.sh \033[0m"

./compil2bin.sh $Currentdir/src $Currentdir/bin compil2bin.sh cp-src2bin.sh docu2html.sh findversions.sh install_annex.sh install_datasfiles.sh makeman_annex.sh users_install_annex.sh
sleep 3
ls -al bin
echo "----"

clear
cd src;ls -m *.sh | sed "s/,//g"|tr "\n" " ">listm.txt
echo "List of files in srcdir:"; cat listm.txt; echo
cd $Currentdir
read Parameters < src/listm.txt
echo "Parameters: $Parameters"
echo -e "\033[1;33m./compil2bin.sh $Currentdir/src $Currentdir/bin $Parameters \033[0m"
./compil2bin.sh $Currentdir/src $Currentdir/bin $Parameters
ls -al bin
echo "----"

Manuel

compil2bin(1)                 Linux User's Manual                compil2bin(1)

NAME
       compi2bin  -  compilation  program  consists of eliminating the tags of
       Documentation, Manual, Organization-charts,  Programmers-doc  Tests-doc
       and  producing .pot .po files for the translations, can also update .mo
       files.

SYNOPSIS
       compil2bin $(SRC) [$(BIN)|$(SBIN)|$(LIB)] [files-list] in Makefile
       compil2bin [--v|srcdir] [bindir|sbindir|libdir] [files-list] [--t]
       in Add-appendix software

DESCRIPTION
       This manual page explains the compil2bin program. The  compil2bin  pro‐
       gram  is included in Makefile to install sources files in binary direc‐
       tories such as bin lib sbin  and product .pot  .po .mo  files  to  lang
       resources  directories. If you are edit and saved po files you can copy
       .mo files to /usr/share/locale/lang/LC_MESSAGES/.

OPTIONS
       - [--v]
              Print the compil2bin version

       - $(SRC) and srcdir
              This variable is used in makefile example: SRC=/usr/local/src or
              srcdir=$Workdir/src in Add_appendix software

       - [$(BIN)|$(SBIN)|$(LIB)] and [bindir|sbindir|libdir]
              This  variables  are  used  in  makefile  example: SBIN=/usr/lo‐
              cal/sbin or bindir=$Bindir  sbindir=$Sbindir  libdir=$Libdir  in
              Add_appendix software

       - [file-list]
              This  arguments list are list of files to convert and install to
              $(BIN) or $(SBIN) or $(LIB)

       - [--t]
              Print the compil2bin variables in current command execution

EXAMPLES
       compil2bin $Srcdir $Bindir
       compil2bin $Currentdir/src $Currentdir/bin $Parameters
       Variable $Parameters content the list of files to convert

NOTES
       To   complete   your   information:   https://fr.wikibooks.org/wiki/An‐
       nexes_de_wikibooks#Makefile_proposé_aux_essais

SEE ALSO
       addapendix packages

compil2bin(1)                     5 nov 2021                     compil2bin(1)


Remarque
Par convention dans l'installation de l’application annex, les fichiers shell *.sh ne doivent pas être exécutables, ce sont des références d'installation, ils peuvent contenir de la documentation. Ces fichiers peuvent être différents des fichiers de même nom, exécutables sans l'extension .sh
Télécharger les logiciels de dépendances et d'installation
  • Poedit et xgettext se trouvent en standard dans les bibliothèque des systèmes linux.
  • Pour les autres programmes, consulter : Install and dependency files



Annexer (Version internationalisée)

Cette version est à utiliser sous linux.

(Fichiers d'installation et de dépendances)

Ces processus avec mkd et mkddoccu vont probablement être abandonnés très prochainement. (Commentaire du 9 avril 2021 à 17:29 (CEST))

mkd et mkddocu

  • Le logiciel mkd est utilisé dans l'exécution du programme annex
  • mkddocu est utilisé avec la liste des modules de programme annex.prj pour dresser la liste des messages à traduire en d'autres langues. La langue de références est l'anglais.

Installer l'application Annexer

Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)#src.orig_en_français

INTERNATIONALISATION

Codes sources (internationalized source code)

  • Globalement, les répertoires des binaires des systèmes unix/linux sont naturellement intégrés dans l'environnement de travail.
  • Localement, on peut copier les fichiers dans le répertoire racine de l'application,
    dans :
~/Annexer/src/ pour les sources, et ~/Annexer/bin/ pour les exécutables,
auquel cas, ajouter le chemin ~/Annexer/bin/ dans le path de l'environnement de travail.
Ouvrir un terminal et taper la commande suivante, ou l'inclure dans une commande d'exécution du terminal[1] :
 selon le répertoire racine 
 export PATH=$PATH:~/Annexer/bin
 ou
 export PATH=$PATH:~/Add_appendix/bin 
Dans ce cas on met tous les exécutables dans ce même répertoire bin et on peut générer les Annexes dans le répertoire Annexer/projet ou Add_appendix/projet, projet est habituellement le nom du livre.
Ce path ajouté prend fin avec la clôture du terminal.


Les codes ci-dessous doivent être installés dans le répertoire 'lib'

annex.lib

Bien avancé vβ 210514 Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/annex.lib
La fontion findbook est validée, les fonctions ecfp* sont à réviser. 17 mai 2021 à 11:38 (CEST)
* Si vous désirez éprouver ces codes, vous pouvez les installer dans les répertoires ~/Add_appendix/tests/1-annex.lib/<sous-répertoires : 11-findbook.sh/, 12-ecfpb.sh/, 13-ecfpc.sh/ >
Complet β-210514 - Tester le code source de la fonction findbook avec le programme test_findbook.bash (extrait les lien (urls) du Sommaire, du Contenu ou de la Compilation pour préparer la création de l'annexe des livres)
En finition/En voie de finition? terminaison? β-210409 - Tester le code source de la fonction ecfpb avec test_ecfpb.bash] (extrait le contenu des livres imprimables)
En finition/En voie de finition? terminaison? β-210415 - Tester le code source de la fonction ecfpc function with test_ecfpc.bash (extrait le contenu des livres compilés)


Les codes sources ci-dessous doivent être installés dans le répertoire d'installation src, ils peuvent avoir été compilés nettoyés des commentaires, sans l'extension .sh dans le répertoire bin, ou selon la version, aussi dans les répertoires lib ou encore dans le répertoire local tests/1-annex.lib

pre-annex.sh

En finition/En voie de finition? terminaison? vβ 210516 Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/pre-annex.sh
L'internationalisation des messages reste à faire

header.inc.sh

En finition/En voie de finition? terminaison? vβ 210519 Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/header.inc.sh
L'internationalisation des messages est à reprendre

annex.sh

À moitié réalisé vβ 210326 Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/annex.sh
L'internationalisation des messages est à reprendre

list.sh

À moitié réalisé vβ 210321 Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/list.sh

download.sh

Non commencé Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/download.sh

add_sclt.sh

Non commencé Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclt.sh

add_sclic.sh

Non commencé Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclic.sh

add_sclip.inc.sh

Non commencé Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclip.inc.sh

sclipco.sh

Non commencé Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/sclipco.sh

sclipwb.sh

Non commencé [Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/sclipbw.sh]]



Les codes d'installation ou/et de réinstallation de la version internationalisée sont habituellement installées dans le répertoire_d'installation/sbin.
En cas d'installation du programme annex dans /usr/local il est possible d'installer ces deux fichiers de commandes directement dans le répertoire /usr/local/sbin

install_annex.sh

À exécuter deux fois !
install_annex.sh Installe la structure des répertoires du programme add_appendix pour les programmeurs et la maintenance.
La commande est exécutée une première fois lors de l'installation et une deuxième fois pour générer les fichiers de traduction après l'exécution de cp-src2bin.sh
Cette commande peut être ré-exécutée à volonté.
En finition/En voie de finition? terminaison? vβ 210519 install_annex.sh
users_install_annex.sh Installe la structure des répertoires du programme add_appendix pour les utilisateurs.
Cette commande peut être ré-exécutée à volonté.
En finition/En voie de finition? terminaison? vβ 210519 users_install_annex.sh

cp-src2bin.sh

cp-src2bin.sh installe les fichiers exécutables du programme dans le répertoire bin à partir des fichiers sources.
En finition/En voie de finition? terminaison? vβ 210328 Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/cp-src2bin.sh

src.orig en français

Information sur les fichiers de listes contenus dans les codes

  • *.list contiennent les liens complets vers les pages : (https:{{FULLURL:<page>)}}
Exemple 1 d'une url iso : https:{{FULLURL:Auto-éditer_un_wikilivre/Auto-référencer/header.sh}}
https://fr.wikibooks.org/wiki/Auto-%C3%A9diter_un_wikilivre/Auto-r%C3%A9f%C3%A9rencer/header.sh
Exemple 2 de la même url en utf-8 : https://fr.wikibooks.org/wiki/Auto-éditer_un_wikilivre/Auto-référencer/header.sh
  • *.prj contiennent l'adresse des pages et sous-pages wiki.
Exemple : Auto-éditer_un_wikilivre/Auto-référencer/header.sh
  • *.pj contiennent le dernier champ d'un lien :
Exemple : header.sh

Éditer la page originale[2]

Codes de l'application en français avec les manuels

Ce projet est bien avancé pour linux ou mingw-windows, il est à utiliser avec indulgence.
Dans cette version, les images téléversées sur wiki-Commons sans passer par wikibooks ne sont pas reconnues.
Votre contribution est souhaitée. Vous pouvez rédiger vos remarques et vos recommandations dans la page Discussion.
Il est possible de télécharger cette application expérimentale à but éducatif
Télécharger par ftp
Remarque concernant l'état du serveur de téléchargements
  1. télécharger Annexer-fr_200701.zip qui contient les copies des articles ci-dessous,
  2. télécharger md5sum_Annexer-fr_200701.zip qui contient la somme de contrôle attestant que le fichier n'a pas subi de modification.
  3. md5sum de Annexer-fr_200701.zip: c4825faa84eef1514d72edb0bd7b394e
  4. Les droits de copies et de partages des fichiers téléchargés sont ceux des articles ci-dessous.
Les codes suivants sont utilisables pour les tests des mainteneurs de la façon suivante :
  1. Copier le contenu de la page du premier module header.inc.sh dans un éditeur de texte comme Notepadqq,
    l'enregistrer sous le nom header.inc.sh dans le répertoire des tests ~/Annexer/tests/header.inc.sh/header.inc.sh
    que vous aurez créé.
  2. Y copier également des programmes de test ctrl-header.inc.bash et test-header.inc.bash
  3. Ouvrir un terminal. Dans le répertoire '~/Annexer/test/header.inc.sh/', modifier le mode de lecture-écriture-exécution
    des programmes de contrôle et de tests de header.inc.sh de la façon suivante : chmod 755 *.bash
    Exécuter le module sans paramètre : ./ctrl-header.inc.bash puis avec le paramètre LivreTest
  4. Éditer la page LivreTest.contenu, copier la partie éditée et l'enregistrer sous le nom LivreTest.contenu
    dans le répertoire Annexer/LivreTest qui vient d'être créé par l'exécution de ./ctrl-header.inc.bash LivreTest.

  1. Copier le contenu de la page du module lister.sh, pour les tests, et l’enregistrer sous le nom
    '~/Annexer/tests/lister.sh/lister.sh '. Y copier également les programmes ctrl-lister.bash, et test-lister.bash
    Faire les test du module et observer les modifications du répertoire Annexer/LivreTest.
  2. ... et ainsi-de-suite. Le dernier fichier à créer est le fichier d'exécution globale annexer.
  3. Annexes que l'on doit obtenir : 1) Annexe globale - 2) Annexe personnalisée wb - 3) Annexe personnalisée co.

Annexe obtenue avec la version 200623 de l'application Faire_fleurir_le_sel/Annexe

Fichiers du logiciel annexer

Les fichiers suivants, en cours de réécritures, devront être installés dans le répertoire ~/Annexer/src, puis installés avec l'installateur.

Complet Auto-éditer_un_wikilivre/Auto-référencer/header.inc.sh Fichier d'entête, inclus dans tous les modules. Version 210505

En cours Auto-éditer_un_wikilivre/Auto-référencer/lister.sh Crée les fichiers de listes pour les modules suivants. Version obsolète 200701

En cours Auto-éditer_un_wikilivre/Auto-référencer/télécharger.sh Télécharge les pages de Wikilivres selon les listes générées.Version obsolète 200623

En cours Auto-éditer_un_wikilivre/Auto-référencer/ajouter_sclt.sh Ajoute l'entête pour les textes et les articles de l'Annexe. Version obsolète 210125

En cours Auto-éditer_un_wikilivre/Auto-référencer/ajouter_sclic.sh Ajoute l'entête globale pour les images et illustration, etc. Version obsolète 210125

En cours Auto-éditer_un_wikilivre/Auto-référencer/ajouter_sclip.inc.sh Ajoute les textes des conditions de copie des images. Version obsolète 210125

En cours Auto-éditer_un_wikilivre/Auto-référencer/sclipwb.sh Ajoute, par article, les liens vers les images selon Wikilivres. Version obsolète 210125

En cours Auto-éditer_un_wikilivre/Auto-référencer/sclipco.sh Ajoute, par article, les liens vers les images selon Commons. Version obsolète 210125

↑ Ce module sclipco.sh utilise des données produites par le module sclipwb sclipco.sh l’exécutable est à réviser. Avis du 30 juillet 2020 et du 25/01/2021.

En cours Auto-éditer_un_wikilivre/Auto-référencer/annexer.sh Commande globale. Version obsolète 200626

Auto-éditer_un_wikilivre/Auto-référencer/md5sum_src-orig Somme de contrôle des fichiers depuis la Version 200623


Auto-éditer_un_wikilivre/Auto-référencer/cp-localsrc-2-localbin . Version 210504

↑ L'Installateur ci-dessus installe les fichiers de commandes dans le répertoire d'exécution ~/Annexer,
il doit d'être installé en mode exécutable dans le répertoire des sources ~/Annexer/src.

Fichiers de documentation du logiciel annexer

Les fichiers suivants doivent être installés dans le répertoire ~/Annexer/tests/02-manuels.
Effectuer les tests puis installer le manuel dans le système linux avec makeman_annexer.sh
Après avoir effectué l'installation dans le système linux, vous pouvez utiliser le script htmlman.sh pour créer le manuel en html et texte pour l'imprimante.

Une version complète existe Auto-éditer_un_wikilivre/Auto-référencer/annexer_fr.1 Fichier nroff avec un aperçu, pour l'installation du manuel français version 200626

Une version complète existe Auto-éditer_un_wikilivre/Auto-référencer/annexer_fr.html Fichier html avec un aperçu, pour l'installation du manuel français version 200626

Une version complète existe Auto-éditer_un_wikilivre/Auto-référencer/makeman_annexer.sh Cet exécutable installe le manuel dans la sructure unix/linux en français.


Fichiers d'installation

INSTALLER.sh

Cette commande télécharge tous les fichiers de commandes et installe l'application dans les répertoires du PC.

Syntaxe
INSTALLER.sh [ liste | pour moi | pour tous | pour admin ]
Exemples dans le répertoire d installation : ~/tmp
-> exemple ./INSTALLER.sh annexer.list, pour télécharger les articles depuis wikilivres.
-> exemple ./INSTALLER.sh pour moi, pour copier les codes dans ~/Annexer.
-> exemple ./INSTALLER.sh pour tous, pour copier les codes exécutables dans /usr/local/bin.
-> exemple ./INSTALLER.sh pour admin, pour copier les codes exécutables dans /usr/local/sbin.
Attention : la commande suivante fonctionne, cependant, elle doit être perfectionnée.
Les corrections et tests ne pourront pas se faire dans l'immédiat (juin 2020).
Sauf si des wikipédiens se dévouent.
Essayer et comparer les codes des sources obtenues avec les codes des pages wiki.
Dans l'attente, préférer l'installation des codes de tous les fichiers par copier-coller.

Fichier original à copier-coller pour télécharger l'application Annexer, avec le fichier annexer.list qui contient la liste des fichiers à télécharger :
En finition/En voie de finition? terminaison? vβ 200604 Auto-éditer_un_wikilivre/Auto-référencer/INSTALLER.sh shell exécutable

En finition/En voie de finition? terminaison? vβ 210419 Liste des fichiers à copier Texte pour mémoire, préférer lancer les copies avec la page wikilivres

Une version complète existe Auto-éditer_un_wikilivre/Auto-référencer/html_data_conversions Copie pour contrôle du fichier INSTALLER.sh
md5sum : c7a7e6eb3347e2f0d614df29029d5578

Une version complète existe Auto-éditer_un_wikilivre/Auto-référencer/html_url_conversions Copie pour contrôle du fichier INSTALLER.sh
md5sum : a01327f2138adeffea16e446be79e917

Voir aussi

Auto-éditer_un_wikilivre/Auto-référencer
Cet article concerne l’étude préliminaire de l'application Annexer.
Les modules en sous-pages peuvent avoir été modifiés. Il est possible de consulter les pages d’origine par consultation de l'historique de l'article et l'historique du module en sous-page concerné.

Codes pour l'installation et les tests

Fichiers nécessaires à l'installation

Auto-éditer_un_wikilivre/Auto-référencer/LivreTest/LivreTest.contenu Fichier pour les tests avec LivreTest

Auto-éditer_un_wikilivre/Auto-référencer/LivreTest/LivreTest.compilé Fichier pour les tests avec LivreTest

Auto-éditer_un_wikilivre/Auto-référencer/annexer.list Fichier pour l'installation avec INSTALLER.sh

Auto-éditer_un_wikilivre/Auto-référencer/annexer.prj Exemple

Auto-éditer_un_wikilivre/Auto-référencer/annexer.pj Exemple

Installer les fichiers de l'application

Préinstaller l'application sur le PC
Note : BASH doit être installé sur le PC; il existe en standard sous linux.
1. Copier le code suivant dans un terminal de votre PC, et exécuter la commande.
   mkdir ~/tmp ~/Annexer ~/Annexer/LivreTest;
2. La méthode d'installation manuelle est la plus simple. Copier et coller les codes de l'application, ci-dessus, dans un éditeur de texte, puis les enregistrer dans le répertoire ~/Annexer que vous venez de créer.
3. Autre possibilité de copies : Utiliser les convertisseurs à disposition comme https://documentcyborg.com/. Il vous suffit de coller l'adresse html de la page dans le cadre approprié, de cliquer sur le format désiré : Get TXT, puis télécharger Download Document. Le document sera téléchargé dans la page habituelle de téléchargement. Il faut, malgré tout, éditer le document et probablement supprimer les ligne commençant par le caractère '*', et aussi; commenter la dernières lignes :
# Document converted to txt via Document Cyborg ( https://documentcyborg.com )
4. Installer presque automatiquement avec INSTALLER.sh En cours de corrections
Le répertoire d'installation des copies est ~/tmp ('~' représente la racine du répertoire utilisateur)
Copier le contenu de la page INSTALLER.sh et annexer.list dans le répertoire ~/tmp.
Entrer dans le répertoire tmp et lancer la commande INSTALLER.sh annexer.list
Si tout s'est bien passé il vous sera proposé quatre choix :
  1. choix 0 : ne rien faire, les fichiers restent dans le répertoire ~/tmp pour être examinés.
    Il sera toujours possible d'installer ultérieurement par la commande ./INSTALLER.sh [options]
    les options sont 4me (for me), 4all (for all), 4adm (for admin's).
  2. choix 1 : installer les fichiers dans le répertoire utilisateur ~/Annexer pour les tests.
  3. choix 2 : installer les fichiers pour tous dans /usr/local/bin (src, bin, man, share/doc).
  4. choix 3 : installer les fichiers pour les administrateurs (root, su, sudo) dans /usr/local/sbin.
Le répertoire ~/tmp pourra être nettoyé dès que les fichiers auront été copiés.

Installer les fichiers de tests

Procéder comme à l'étape précédente; copier les fichiers LivreTest.contenu et LivreTest.compilé dans le répertoire ~/Annexer/LivreTest.

Fichiers de traductions (Translations files)

header.pot et annex.pot (sources en anglais)

Logo

Ces fichiers se placent dans le répertoire_de_travail/resources/lang, pas dans le répertoire src/lang/po comme la page pourrait le suggérer.

header.pot

annex.pot

header.po et annex_es.po espagnol

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/po/header_es.po

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/po/annex_es.po

header.po et annex_fr.po français

Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/lang/po/header_fr_FR.po

Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/lang/po/annex_fr_FR.po

Manuels (Manuals)

annex.1 anglais

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/man/annex.1

annex_es.1 espagnol

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/man/annex_es.1

annex_fr.1 français

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/man/annex_fr.1

doc2html.sh

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/man/doc2html.sh Crée les manuels en versions html et txt.gz.

Fichiers généraux (General files)

documentation

Auto-éditer un wikilivre/Annexer (Version internationalisée)/doc

icons

icons installation

Install icons files in local icons directory

  • Les images doivent se trouver dans le même répertoire que ce script .../tests/PACKAGE/icons/.
  • Les images sont récupérables sur wikmedia commons:
 https://commons.wikimedia.org/wiki/File:AA48x48bleu.png (image ci -dessus)
Catégorie Add_appendix:
 https://commons.wikimedia.org/wiki/Category:Add_appendix 
les contours nets sont obtenus à partir de fichiers SVG:
 /usr/share/icon/hicolors/scalable/mimetypes/addappendix.svg
#!/bin/bash
#H Command for addappendix software
#H syntax sudo install_icon.bash
#H File install_icons in tests/PACKAGE/icons
VERSION=211213
#O Create variables : Workdir, Iconsdir
    if pwd | grep Add_appendix; then Workdir=~/Add_appendix
	elif pwd | grep Annexer; then Workdir=~/Annexer
	fi
	Iconsdir=$Workdir/share/icons

	echo -e "install_icons.bash in tests/PACKAGE/icons to :\n Version $VERSION\n Syntax: install_icons.bash"
	#install icons and update cache
	chmod 644 *.png *.svg
	cp -f AA256x256.png $Iconsdir/hicolor/256x256/mimetypes/addappendix.png
	cp -f AA256x256.svg $Iconsdir/hicolor/256x256/mimetypes/addappendix.svg
	cp -f AA256x256.svg $Iconsdir/hicolor/scalable/mimetypes/addappendix.svg
	cp -f AA48x48bleu.png $Iconsdir/hicolor/48x48/apps/addappendix.png
	cp -f AA32x32bleu.png $Iconsdir/hicolor/32x32/apps/addappendix.png
	cp -f AA16x16bleu.png $Iconsdir/hicolor/16x16/apps/addappendix.png
	cp -f AA8x8bleu.png $Iconsdir/hicolor/8x8/apps/addappendix.png
	find $Iconsdir/hicolor
	
	# Pour mémoire:
	# Attention il faut que toute la commande soit sur la même ligne dans le Makefie d'où le caractère éventuel escape: '\'
	# On ne peut mettre à jour la base de données que si les images sont installées dans le système
	# if test -e "/usr/share/icons/hicolor/16x16/apps/addappendix.png"; then sudo gtk-update-icon-cache -t /usr/share/icons/hicolor; fi

Makefile to test and/or update icons cache

#!/bin/make
# file: icons/mak for packaging ubuntu addappendix
# addappendix-O~211208
# updated by french wikibooks user:Goelette_Cardabela
# To install : sudo make -f icons.mak -d clean install
# To test  : make -f icons.mak -d clean install DESTDIR=./tests
# To examine ./tests directory type find ./tests
# Lors de l'installation les fichiers sources doivent être recopiés
# d'un autre répertoire qui peut être dans ~/Add_appendix
#
# This test makefile is in $HOME/Add_appendix/tests/PACKAGES/icons
# system directories

VERSION=211214

ICONS	= $(DESTDIR)/usr/share/icons/hicolor
Sharedir=../../../share
	# for simulation in package root directory

install:
	#install icons and update cache
	install -d $(ICONS) $(ICONS)/scalable/mimetypes $(ICONS)/256x256/mimetypes
	install -d $(ICONS)/256x256/apps $(ICONS)/48x48/apps $(ICONS)/32x32/apps $(ICONS)/16x16/apps $(ICONS)/8x8/apps
	#chmod 644 $(Sharedir)/icons/*
	#cp -f $(Sharedir)/icons/AA256x256.svg $(ICONS)/scalable/mimetypes/addappendix.svg
	cp -f $(Sharedir)/icons/hicolor/scalable/mimetypes/addappendix.svg  $(ICONS)/scalable/mimetypes/addappendix.svg
	#cp -f $(Sharedir)/icons/AA256x256.png $(ICONS)/256x256/mimetypes/addappendix.png
	cp -f $(Sharedir)/icons/hicolor/256x256/mimetypes/addappendix.png $(ICONS)/256x256/mimetypes/addappendix.png
	#cp -f $(Sharedir)/icons/AA256x256.svg $(ICONS)/256x256/mimetypes/addappendix.svg
	cp -f $(Sharedir)/icons/hicolor/256x256/mimetypes/addappendix.svg $(ICONS)/256x256/mimetypes/addappendix.svg
	#cp -f $(Sharedir)/icons/AA48x48bleu.png $(ICONS)/48x48/apps/addappendix.png
	cp -f $(Sharedir)/icons/hicolor/48x48/apps/addappendix.png $(ICONS)/48x48/apps/addappendix.png
	#cp -f $(Sharedir)/icons/AA32x32bleu.png $(ICONS)/32x32/apps/addappendix.png
	cp -f $(Sharedir)/icons/hicolor/32x32/apps/addappendix.png $(ICONS)/32x32/apps/addappendix.png
	#cp -f $(Sharedir)/icons/AA16x16bleu.png $(ICONS)/16x16/apps/addappendix.png
	cp -f $(Sharedir)/icons/hicolor/16x16/apps/addappendix.png $(ICONS)/16x16/apps/addappendix.png
	#cp -f $(Sharedir)/icons/AA8x8bleu.png $(ICONS)/8x8/apps/addappendix.png
	cp -f $(Sharedir)/icons/hicolor/8x8/apps/addappendix.png $(ICONS)/8x8/apps/addappendix.png
	#
	# Attention il faut que toute la commande soit sur la même ligne d'où le caractère escape '\'
	# On ne peut mettre à jour la base de données que si les images sont installées dans le système
	@if [ -z $(DESTDIR) ]; then sudo gtk-update-icon-cache -t /usr/share/icons/hicolor;fi
clean: install

find ./tests result :

./tests
./tests/usr
./tests/usr/share
./tests/usr/share/icons
./tests/usr/share/icons/hicolor
./tests/usr/share/icons/hicolor/48x48
./tests/usr/share/icons/hicolor/48x48/apps
./tests/usr/share/icons/hicolor/48x48/apps/addappendix.png
./tests/usr/share/icons/hicolor/16x16
./tests/usr/share/icons/hicolor/16x16/apps
./tests/usr/share/icons/hicolor/16x16/apps/addappendix.png
./tests/usr/share/icons/hicolor/256x256
./tests/usr/share/icons/hicolor/256x256/apps
./tests/usr/share/icons/hicolor/256x256/mimetypes
./tests/usr/share/icons/hicolor/256x256/mimetypes/addappendix.svg
./tests/usr/share/icons/hicolor/256x256/mimetypes/addappendix.png
./tests/usr/share/icons/hicolor/32x32
./tests/usr/share/icons/hicolor/32x32/apps
./tests/usr/share/icons/hicolor/32x32/apps/addappendix.png
./tests/usr/share/icons/hicolor/8x8
./tests/usr/share/icons/hicolor/8x8/apps
./tests/usr/share/icons/hicolor/8x8/apps/addappendix.png
./tests/usr/share/icons/hicolor/scalable
./tests/usr/share/icons/hicolor/scalable/mimetypes
./tests/usr/share/icons/hicolor/scalable/mimetypes/addappendix.svg

locale

update_mo.bash

  • This file is in .../tests/PACKAGES/locale/ directory
#!/bin/bash
#H file: update_mo
VERSION=211216
#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
Langdir=$Sharedir/addappendix/resources/lang/po
Localedir=$Sharedir/locale
PACKAGESDIR=$Testsdir/PACKAGES

cat $Workdir/vars/installdir.var
echo "Mandir=$Mandir"
echo "Sbindir=$Sbindir"
echo "Langdir=$Langdir"
echo "Localedir=$Localedir"
echo "PACKAGESDIR=$PACKAGESDIR"
#T exit 0

#O Copier les derniers fichiers .pot dans ce répertoire tests/PACKAGES/locale/po
#O Note:  Par l'exécution de cpcleaned2bin de la librairie ils se trouvent dans
#O   le répertoire share/addappendix/resources/lang/po )
echo "cp $Langdir/*.pot po/."
cp $Langdir/*.pot po/.
#O Créer une liste des fichiers sans l'extension '.pot' dans po directory
ls -1 po/*.pot | sed "s/.pot//g" | sed "s/po\///g"> files.pj 
cat files.pj
#T exit 0
#O This script is in tests/PACKAGES/locale. If not then exit -1
if pwd | grep PACKAGES; then echo "update_mo.bash is found in $Testsdir/PACKAGES"; else echo "update_mo.bash is not found in $Testsdir/PACKAGES"; exit -1; fi
if test -z $1; then echo " Syntaxe ./update_mo.bash [ en | de | es | fr ]"; exit -1; fi

#O Tant que l'on a des ligne à lire
while read line
do
#O Imprimer le 'nom' lu
  echo;echo "$line"
#O Si il existe un fichier '$1/nom.po'
  if test -e po/$1/$line.po
#O Alors :
  then 
#O Metre à jour le fichier 'nom.po'
     msgmerge --update po/$1/$line.po po/$line.pot
#0 Créer ou mettre à jour le fichier .mo
     msgfmt po/$1/$line.po -o po/$1/$line.mo
#O Afficher le fichier .mo mis àjour
     ls -a po/$1/$line.mo
     echo -n "po/$1/$line.mo updated :"; ls -l po/$1/$line.mo
	 cp po/$1/$line.mo $Localedir/$1/LC_MESSAGES/.
#O Sinon afficher les message que le fichier.po n'est pas trouvé (donc pas mis à jour
    else echo "po/$1/$line.po is not found, not updated"
  fi
#O Fin du tant-que
done < files.pj

echo;echo "local '.mo' files"
ls -al po/$1/*.mo

echo;echo "$Localedir/$1/LC_MESSAGES/'.mo' files"
ls -al $Localedir/$1/LC_MESSAGES/*.mo

#O afficher le message "Pour metrre à jour /usr/share/locale exécuter la commande  sudo make f- locale.mak -d clean install
echo; echo -e "\033[1;33m### To update /usr/share/locale execute  sudo make f- locale.mak -d clean install in tests/PACKAGES/locale ###\033[0m"

Résultat de update_mo

local '.mo' files
-rw-rw-r-- 1 jpl jpl 2322 déc.  16 18:01 po/fr/addappendix.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 po/fr/add_sclic.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 po/fr/add_sclipco.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 po/fr/add_sclipwb.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 po/fr/add_sclt.mo
-rw-rw-r-- 1 jpl jpl  607 déc.  16 18:01 po/fr/annexer.mo
-rw-rw-r-- 1 jpl jpl 5448 déc.  16 18:01 po/fr/annex.mo
-rw-rw-r-- 1 jpl jpl  572 déc.  16 18:01 po/fr/en_sclic.inc.mo
-rw-rw-r-- 1 jpl jpl  531 déc.  16 18:01 po/fr/en_sclipco.inc.mo
-rw-rw-r-- 1 jpl jpl  779 oct.   8 18:06 po/fr/en_sclipwb.inc.mo
-rw-rw-r-- 1 jpl jpl  838 déc.  16 18:01 po/fr/en_sclt.inc.mo
-rw-rw-r-- 1 jpl jpl 3008 déc.  16 18:01 po/fr/header.inc.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 po/fr/scli.inc.mo

/home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/'.mo' files
-rw-r--r-- 1 jpl jpl 2322 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/addappendix.mo
-rw-r--r-- 1 jpl jpl  522 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/add_sclic.mo
-rw-r--r-- 1 jpl jpl  522 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/add_sclipco.mo
-rw-r--r-- 1 jpl jpl  522 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/add_sclipwb.mo
-rw-r--r-- 1 jpl jpl  522 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/add_sclt.mo
-rw-r--r-- 1 jpl jpl  607 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/annexer.mo
-rw-r--r-- 1 jpl jpl 5448 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/annex.mo
-rw-r--r-- 1 jpl jpl  572 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/en_sclic.inc.mo
-rw-r--r-- 1 jpl jpl  531 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/en_sclipco.inc.mo
-rw-r--r-- 1 jpl jpl 3008 oct.  12 18:28 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/en_sclipwb.inc.mo
-rw-r--r-- 1 jpl jpl  838 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/en_sclt.inc.mo
-rw-rw-r-- 1 jpl jpl 3008 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/header.inc.mo
-rw-rw-r-- 1 jpl jpl  522 déc.  16 18:01 /home/jpl/Add_appendix/share/locale/fr/LC_MESSAGES/scli.inc.mo

locale.mak

  • This file is in .../tests/PACKAGES/locale/ directory
#!/bin/make
# file:locale.mak for packaging ubuntu addappendix or annexer
# addappendix-O~211213
# updated by french wikibooks user:Goelette_Cardabela
# To install : sudo make f- locale.mak -d clean install
# To test  : make -f locale.mak -d clean install DESTDIR=./tests
# To examine ./tests directory type find ./tests
# Lors de l'installation les fichiers sources doivent être recopiés
# d'un autre répertoire qui peut être dans ~/Add_appendix
#
# This test makefile is in $HOME/Add_appendix/tests/PACKAGES/locale
# system directories

LANG	= $(DESTDIR)/usr/share/locale
Langdir=../../../share/addappendix/resources/lang/po
Localedir=../../../share/locale

install:
	@echo "Warning: before execute update_mo/bash"
	# Install languages after directories installation
	install -d $(LANG)/de/LC_MESSAGES $(LANG)/en/LC_MESSAGES $(LANG)/fr/LC_MESSAGES $(LANG)/es/LC_MESSAGES
	## de
	#cp -f $(Localedir)/de/LC_MESSAGES/*.mo $(LANG)/de/LC_MESSAGES/.
	## en
	#cp -f $(Localedir)/en/LC_MESSAGES/*.mo $(LANG)/en/LC_MESSAGES/.
	## es
	#cp -f $(Localedir)/es/LC_MESSAGES/*.mo $(LANG)/es/LC_MESSAGES/.
	## fr
	cp -f $(Localedir)/fr/LC_MESSAGES/*.mo $(LANG)/fr/LC_MESSAGES/.
	cp -u $(Langdir)/fr/addappendix.mo $(LANG)/fr/LC_MESSAGES/addappendix.mo
	cp -u $(Langdir)/fr/annex.mo $(LANG)/fr/LC_MESSAGES/annex.mo
	cp -u $(Langdir)/fr/header.inc.mo $(LANG)/fr/LC_MESSAGES/header.inc.mo

clean:

Résultat du test

fichier du test

find ./tests
./tests
./tests/usr
./tests/usr/share
./tests/usr/share/locale
./tests/usr/share/locale/es
./tests/usr/share/locale/es/LC_MESSAGES
./tests/usr/share/locale/en
./tests/usr/share/locale/en/LC_MESSAGES
./tests/usr/share/locale/de
./tests/usr/share/locale/de/LC_MESSAGES
./tests/usr/share/locale/fr
./tests/usr/share/locale/fr/LC_MESSAGES
./tests/usr/share/locale/fr/LC_MESSAGES/add_sclipwb.mo
./tests/usr/share/locale/fr/LC_MESSAGES/header.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/en_sclipco.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/en_sclt.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/en_sclipwb.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/annexer.mo
./tests/usr/share/locale/fr/LC_MESSAGES/scli.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/addappendix.mo
./tests/usr/share/locale/fr/LC_MESSAGES/add_sclt.mo
./tests/usr/share/locale/fr/LC_MESSAGES/annex.mo
./tests/usr/share/locale/fr/LC_MESSAGES/en_sclic.inc.mo
./tests/usr/share/locale/fr/LC_MESSAGES/add_sclipco.mo
./tests/usr/share/locale/fr/LC_MESSAGES/add_sclic.mo

mime

mime installation

Install mime files in local mime directory

  • Ce script installe les fichier addapendix.xml et annexer.xml dans le répertoire share/mime/package/.
  • Les fichiers .xml doivent se trouver dans le mâme répertoire que ce script .../tests/PACKAGES/mime/.
#!/bin/bash
#H syntax: ./install_mime.bash
#H File install_mime.bash in tests/PACKAGE/mime
#!/bin/bash
#H Command for addappendix software
#H File install_mime is in tests/PACKAGE/mime directory
VERSION=211212
#O Create variables : Workdir, Iconsdir
    if pwd | grep Add_appendix; then Workdir=~/Add_appendix
	elif pwd | grep Annexer; then Workdir=~/Annexer
	fi
Mimedir=$Workdir/share/mime
MIME	= /usr/share/mime
chmod 644 *.xml
install -d $Workdir/share/mime/packages
cp -f addappendix.xml $Mimedir/packages/addappendix.xml
cp -f annexer.xml $Mimedir/packages/annexer.xml
ls -l $Mimedir/packages/addappendix.xml
ls -l $Mimedir/packages/annexer.xml

Makefile to test and/or install mime database

  • Vous pouvez également nommer ce makefile mime.mak et lancer le test avec la syntaxe ci-après
  • You can also name this makefile mime.mak and test installation with this syntax:
 make -f mime.mak -d clean install DESTDIR=./tests
 find ./tests
#!/bin/make
# file:mime.mak for packaging ubuntu addappendix or annexer
# addappendix-O~211213
# updated by french wikibooks user:Goelette_Cardabela
# To install : sudo make f- mime.mak -d clean install
# To test  : make -f mime.mak -d clean install DESTDIR=./tests
# To examine ./tests directory type find ./tests
# Lors de l'installation les fichiers sources doivent être recopiés
# d'un autre répertoire qui peut être dans ~/Add_appendix
#
# This test makefile is in $HOME/Add_appendix/tests/PACKAGES/mime
# system directories

MIME			= $(DESTDIR)/usr/share/mime

install:
	install -d $(MIME) $(MIME)/packages
	# for simulation in package root directory
	if [ -e $(HOME)/Annexer/share/mime/packages ]; then \
		@echo "local Sharedir = $(HOME)/Annexer/share";\
		cp -f $(HOME)/Annexer/share/mime/packages/addappendix.xml $(MIME)/packages/addappendix.xml;\
		cp -f $(HOME)/Annexer/share/mime/packages/annexer.xml $(MIME)/packages/annexer.xml;\
	elif\
		[ -e $(HOME)/Add_appendix/share/mime/packages ]; then \
			@echo "local Sharedir =$(HOME)/Add_appendix/share)";\
			cp -f $(HOME)/Add_appendix/share/mime/packages/addappendix.xml $(MIME)/packages/addappendix.xml;\
			cp -f $(HOME)/Add_appendix/share/mime/packages/annexer.xml $(MIME)/packages/annexer.xml;\
	else echo "pgm directory not found."; exit 255;\
	fi
	@if [ -z $(DESTDIR) ]; then sudo update-mime-database /usr/share/mime; fi
	
clean:

find ./tests result :

./tests
./tests/usr
./tests/usr/share
./tests/usr/share/mime
./tests/usr/share/mime/packages
./tests/usr/share/mime/packages/addappendix.xml
./tests/usr/share/mime/packages/annexer.xml

addappendix.xml

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/addappendix">
    <comment>addappendix project</comment>
    <comment xml:lang="ar">مشروع addappendix</comment>
    <comment xml:lang="ast">proyeutu de addappendix</comment>
    <comment xml:lang="az">addappendix layihəsi</comment>
    <comment xml:lang="be">Prajekt addappendix</comment>
    <comment xml:lang="be@latin">Prajekt addappendix</comment>
    <comment xml:lang="bg">Проект  addappendix</comment>
    <comment xml:lang="bo">addappendix ལས་གཞི</comment>
    <comment xml:lang="bs">Glejd projekat</comment>
    <comment xml:lang="ca">projecte de addappendix</comment>
    <comment xml:lang="cs">Projekt addappendix</comment>
    <comment xml:lang="cy">Prosiect addappendix</comment>
    <comment xml:lang="da">addappendixprojekt</comment>
    <comment xml:lang="de">addappendix-Projekt</comment>
    <comment xml:lang="el">έργο addappendix</comment>
    <comment xml:lang="en_AU">addappendix project</comment>
    <comment xml:lang="en_GB">addappendix project</comment>
    <comment xml:lang="eo">addappendix-projekto</comment>
    <comment xml:lang="es">proyecto de addappendix</comment>
    <comment xml:lang="eu">addappendix proiektua</comment>
    <comment xml:lang="fi">addappendix-projekti</comment>
    <comment xml:lang="fo">addappendix verkætlan</comment>
    <comment xml:lang="fr">projet addappendix</comment>
    <comment xml:lang="ga">tionscadal addappendix</comment>
    <comment xml:lang="gl">proxecto de addappendix</comment>
    <comment xml:lang="he">מיזם addappendix</comment>
    <comment xml:lang="hr">addappendix projekt</comment>
    <comment xml:lang="hu">addappendix-projekt</comment>
    <comment xml:lang="id">Proyek addappendix</comment>
    <comment xml:lang="it">Progetto addappendix</comment>
    <comment xml:lang="ja">addappendix プロジェクト</comment>
    <comment xml:lang="kk">addappendix жобасы</comment>
    <comment xml:lang="ko">addappendix 프로젝트</comment>
    <comment xml:lang="lt">addappendix projektas</comment>
    <comment xml:lang="lv">addappendix projekts</comment>
    <comment xml:lang="ms">Projek addappendix</comment>
    <comment xml:lang="nb">addappendix prosjekt</comment>
    <comment xml:lang="nl">addappendix-project</comment>
    <comment xml:lang="nn">addappendix prosjekt</comment>
    <comment xml:lang="no">addappendix prosjekt</comment>
    <comment xml:lang="oc">Projècte addappendix</comment>
    <comment xml:lang="pl">Projekt addappendix</comment>
    <comment xml:lang="pt">projecto addappendix</comment>
    <comment xml:lang="pt_BR">Projeto do addappendix</comment>
    <comment xml:lang="ro">Proiect addappendix</comment>
    <comment xml:lang="ru">проект addappendix</comment>
    <comment xml:lang="sk">Projekt addappendix</comment>
    <comment xml:lang="sl">Datoteka projekta addappendix</comment>
    <comment xml:lang="sq">Projekt addappendix</comment>
    <comment xml:lang="sr">Глејд пројекат</comment>
    <comment xml:lang="sv">addappendix-projekt</comment>
    <comment xml:lang="ug">addappendix قۇرۇلۇشى</comment>
    <comment xml:lang="uk">проект addappendix</comment>
    <comment xml:lang="vi">Dự án addappendix</comment>
    <comment xml:lang="zh_CN">addappendix 工程</comment>
    <comment xml:lang="zh_TW">addappendix 專案</comment>
    <acronym>ADDAPPENDIXPROJECT</acronym>
    <sub-class-of type="application/xml"/>
    <generic-icon name="addappendix"/>
    <glob pattern="*.appendix"/>
    <glob pattern="*.scli"/>
	<glob pattern="*.sclic"/>
	<glob pattern="*.sclt"/>  
    <alias type="application/annexer"/>
  </mime-type>
</mime-info>

annexer.xml

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/annexer">
    <comment>annexer project</comment>
    <comment xml:lang="ar">مشروع annexer</comment>
    <comment xml:lang="ast">proyeutu de annexer</comment>
    <comment xml:lang="az">annexer layihəsi</comment>
    <comment xml:lang="be">Prajekt annexer</comment>
    <comment xml:lang="be@latin">Prajekt annexer</comment>
    <comment xml:lang="bg">Проект  annexer</comment>
    <comment xml:lang="bo">annexer ལས་གཞི</comment>
    <comment xml:lang="bs">Glejd projekat</comment>
    <comment xml:lang="ca">projecte de annexer</comment>
    <comment xml:lang="cs">Projekt annexer</comment>
    <comment xml:lang="cy">Prosiect annexer</comment>
    <comment xml:lang="da">annexerprojekt</comment>
    <comment xml:lang="de">annexer-Projekt</comment>
    <comment xml:lang="el">έργο annexer</comment>
    <comment xml:lang="en_AU">annexer project</comment>
    <comment xml:lang="en_GB">annexer project</comment>
    <comment xml:lang="eo">annexer-projekto</comment>
    <comment xml:lang="es">proyecto de annexer</comment>
    <comment xml:lang="eu">annexer proiektua</comment>
    <comment xml:lang="fi">annexer-projekti</comment>
    <comment xml:lang="fo">annexer verkætlan</comment>
    <comment xml:lang="fr">projet annexer</comment>
    <comment xml:lang="ga">tionscadal annexer</comment>
    <comment xml:lang="gl">proxecto de annexer</comment>
    <comment xml:lang="he">מיזם annexer</comment>
    <comment xml:lang="hr">annexer projekt</comment>
    <comment xml:lang="hu">annexer-projekt</comment>
    <comment xml:lang="id">Proyek annexer</comment>
    <comment xml:lang="it">Progetto annexer</comment>
    <comment xml:lang="ja">annexer プロジェクト</comment>
    <comment xml:lang="kk">annexer жобасы</comment>
    <comment xml:lang="ko">annexer 프로젝트</comment>
    <comment xml:lang="lt">annexer projektas</comment>
    <comment xml:lang="lv">annexer projekts</comment>
    <comment xml:lang="ms">Projek annexer</comment>
    <comment xml:lang="nb">annexer prosjekt</comment>
    <comment xml:lang="nl">annexer-project</comment>
    <comment xml:lang="nn">annexer prosjekt</comment>
    <comment xml:lang="no">annexer prosjekt</comment>
    <comment xml:lang="oc">Projècte annexer</comment>
    <comment xml:lang="pl">Projekt annexer</comment>
    <comment xml:lang="pt">projecto annexer</comment>
    <comment xml:lang="pt_BR">Projeto do annexer</comment>
    <comment xml:lang="ro">Proiect annexer</comment>
    <comment xml:lang="ru">проект annexer</comment>
    <comment xml:lang="sk">Projekt annexer</comment>
    <comment xml:lang="sl">Datoteka projekta annexer</comment>
    <comment xml:lang="sq">Projekt annexer</comment>
    <comment xml:lang="sr">Глејд пројекат</comment>
    <comment xml:lang="sv">annexer-projekt</comment>
    <comment xml:lang="ug">annexer قۇرۇلۇشى</comment>
    <comment xml:lang="uk">проект annexer</comment>
    <comment xml:lang="vi">Dự án annexer</comment>
    <comment xml:lang="zh_CN">annexer 工程</comment>
    <comment xml:lang="zh_TW">annexer 專案</comment>
    <acronym>PROJETANNEXER</acronym>
    <sub-class-of type="application/xml"/>
    <generic-icon name="addappendix"/>
    <glob pattern="*.appendix"/>
    <glob pattern="*.scli"/>
	<glob pattern="*.sclic"/>
	<glob pattern="*.sclt"/>  
    <alias type="application/addappendix"/>
  </mime-type>
</mime-info>

manuels

Auto-éditer un wikilivre/Annexer (Version internationalisée)/man1

maintenance

Auto-éditer un wikilivre/Annexer (Version internationalisée)/share/maintenance

Références

  1. https://www.linuxtricks.fr/wiki/personnaliser-son-shell-alias-couleurs-bashrc-cshrc
  2. Installer les fichiers de l'application originale en français