Projet mkd/mkddocu.sh

De Wiki EELL.

(Différences entre les versions)
m (Définition des chapitres)
m (NEWS : Retouches)
 
(19 versions intermédiaires masquées)
Ligne 6 : Ligne 6 :
=== Document initial ===
=== Document initial ===
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Documentation du manuel de mkddocu.sh (créé le 24 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:blue">
#!/bin/bash
#!/bin/bash
#P File mkddocu writed by Clara Jimenez 2013-12-15
#P File mkddocu writed by Clara Jimenez 2013-12-15
Ligne 80 : Ligne 80 :
=== La commande shell ===
=== La commande shell ===
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Fichier de la commande shell mkddocu.sh (créé le 24 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:black">
 +
#!#/bin/bash
 +
#P Fichier mkddocu.sh
 +
#P -----------------------------------------------------------------------------
 +
#P Menu d'aide sommaire obtenu par la commande 'mkddocu ?'
 +
#
 +
if test $1; then
 +
  if [ $1 = "?" ]
 +
  then
 +
      echo " Syntax : "
 +
      echo " mkddocu [target_dir] [-s]"
 +
      echo "    → example series with date : mkddocu 2014-02-22 "
 +
      echo "    → without target_dir, name of target dir is 'project' "
 +
      echo "    → with '-s' mkddocu make complete documentation. "
 +
      echo " target dir is writed in 'maintenance' directory : "
 +
      echo "    → ./maintenance/2014-02-22/ "
 +
      echo " mkddocu ? for help "
 +
      echo " Note : "
 +
      echo " This command dépends on mkd command "
 +
      exit 1 #P Fin normale de l'utilisateur (ce n'est pas une erreur)
 +
  fi
 +
fi
 +
#P Affecttion des macros et des variables
 +
#P    BACKUPSMAX : Définition du nombre de sauvegardes d'une série avant la
 +
#P    sauvegarde globale dans un répertoire 'Backup'. (Valeur modifiable)
 +
BACKUPSMAX=3
 +
let i=1          #P compteur
 +
str="false"      #P false ou true
 +
project="project" #P nom du fichier de projet .prj
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Gestion des paramètres d'entrée
 +
#
 +
if test $1
 +
then
 +
  if test $2
 +
  then
 +
      if test $1 && [ $1 != "-s" ]
 +
      then
 +
        project=$1;
 +
        if [ $2 = "-s" ]; then str="true"; fi
 +
      else
 +
        if [ $1 = "-s" ]; then str="true"; project=$2; fi
 +
      fi
 +
  else
 +
      if test $1 && [ $1 != "-s" ] ; then project=$1; fi
 +
      if [ $1 = "-s" ]; then str="true"; fi
 +
  fi
 +
fi
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Gestion de sauvegarde des séries (Transfert dans maintenance/Backup)
 +
#
 +
#P Créer la fonction 'sauvegarde'. (Noter que la varable i est globale)
 +
function sauvegarde
 +
{
 +
  if test -d maintenance/$project
 +
  then
 +
  mv maintenance/$project maintenance/$project.$i
 +
  fi
 +
}
 +
#Po Tant que l'on n'a pas atteind BACKUPSMAX
 +
    while ((i<=BACKUPSMAX));
 +
    do
 +
#Po  Si le répertoire de projet.i existe
 +
      if test -d maintenance/$project.$i
 +
#Po  alors:
 +
      then
 +
#Po      Si le nombre de répertoires projet.i de la série dépasse BACKUPSMAX
 +
        if [ $i = $BACKUPSMAX ]
 +
        then
 +
#Po        demander si il faut transférer la série dans de répertoire 'Backup'
 +
            echo "Last backup before maintenance : "
 +
            echo -n "Make backup in 'Backup' dir, yes ? Your choice : y ? "
 +
            read char
 +
#Po        si 'y' (yes)
 +
            if test $char &&  [ $char = "y" ]
 +
#Po        alors:
 +
            then
 +
#Po            Créer le répertoir Backup s'il y alieu et transférer la série .*
 +
              echo "create Backups dir if not exist"
 +
              install -d Backups
 +
              ((i++))
 +
              sauvegarde
 +
              cp -rf  maintenance/$project.* Backups/.
 +
              rm -rf maintenance/$project.*
 +
              clear
 +
              echo "Files in dir Backups"
 +
              ls -al Backups
 +
            else
 +
              echo "exit -1"
 +
              exit -1 #P En cas dappel par une commande : Fin sur erreur
 +
            fi
 +
        fi
 +
#Po    sinon: Sauvegarder le dernier répertoire par incrément d'extension
 +
      else
 +
        sauvegarde
 +
      fi
 +
      let i++
 +
      #break
 +
  done
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Préparation des répertoires de travail, maintenance et fichier de projet .prj
 +
#
 +
#P    Clean, nettoyage des fichiers d'éditions *~
 +
      rm *.c~ #w ATTENTION ! à exécuter avec précaution
 +
#P    Créer du répertoire ./maintenance si il n'existe pas
 +
      install -d maintenance/$project
 +
#P    Créer le fichier de projet .prj pour tout langage de programmation
 +
      rm -f *.prj
 +
      ls -1 *.asm *.s *.bas *.vb *.bat *.c *.C *.h *.H *.D *.cc *.hh *.cp *.cs \
 +
      *.c# *.c++ *.h++ *.c-- *.h-- *.cpp *.hpp  *.css *.pr *.pl *.php *.jav \
 +
      *.jse *.js  *.f99 *.f *.pas *.p *.sh *.csh *.pl, *.rb *.py *.pyw *.pj \
 +
      *.prj > $project.prj
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Génération de la documentation :
 +
#
 +
#P    Générer le fichier d'entête global .h si il existe des fichiers .c??
 +
if test -r *.c* ; then cfiles="true"; fi
 +
if test -r *.C* ; then cfiles="true"; fi
 +
if test $cfiles; then
 +
  echo " → make header file, to ./maintenance/$project/$project.h, benchmark H"
 +
  mkd -Cjt H $project.prj ./maintenance/$project/$project.h
 +
#Pw  → Remarque d'ATTENTION pour copier manuellement le fichier d'entête .h
 +
  echo " → Warning : Copy manually header file in current source directory "
 +
#Pw  → ATTENTION ligne non validée : cp -f ./maintenance/$project/$project.h .
 +
else
 +
  echo " C files not found "
 +
fi
 +
#
 +
#en  Make documentation with benchmark 'D'
 +
#P    Générer la 'documentation' avec le repère 'D'
 +
#
 +
echo " make documentation, find the programming style, benchmark 'D' "
 +
echo " → ./maintenance/$project/$project-documentation.txt' "
 +
mkd -fjt D $project.prj ./maintenance/$project/$project-documentation.txt
 +
#
 +
#en  Make individuals tests directives document; style find add number of lines
 +
#P    Générer le fichier des directives des tests; avec numéro de ligne repère 'T'
 +
#
 +
echo " make tests document and tests directives with benchmark 'T' "
 +
echo " → './maintenance/$project/$project-tests-directives.txt' "
 +
mkd -fjnt T $project.prj ./maintenance/$project/$project-tests-directives.txt
 +
#
 +
#en  Make maintainers documentation, add line number, benchmark 'P'
 +
#P    Générer le fichier destiné aux mainteneurs avec le repère 'P'
 +
#
 +
echo " make functions maintainers documentation with benchmark 'P' "
 +
echo "→ '/maintenance/$project-maintainers-doc.txt' "
 +
mkd -fjnt P $project.prj ./maintenance/$project/$project-maintainers-doc.txt
 +
#
 +
#P Si le paramètre '-s' est entrée à la commande:
 +
#P    Créer les fichiers : chaînes de caractères et chaînes pour gettext
 +
#en If second parametre is "-s" then
 +
#en  Get all strings and select strings for translations
 +
#
 +
if [ $str = "true" ]; then
 +
  echo " make list of strings for tranlations benchmark '**' "
 +
  mkd -fpnjs '**' $project.prj ./maintenance/$project/strings.txt | \
 +
  grep gettext > ./maintenance/$project/strings-2-translations.txt
 +
fi
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Afficher les recommandations de lecture des fichiers de maintenance
 +
#
 +
echo "  See in working directory: ./maintenance/$project/$project/* "
 +
ls -l ./maintenance/$project
 +
#P Quitter avec un retour à la valeur 0
 +
exit 0 #P Fin correcte normale
</pre>
</pre>
{{Boîte déroulante fin}}
{{Boîte déroulante fin}}
=== Directive des tests ===
=== Directive des tests ===
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Directive des tests (mkddocu.sh créé le 24 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:orange">
-
 
+
#T Fichier mkddocu.sh
 +
#T -----------------------------------------------------------------------------
 +
#T Tests : Ne peut fonctionner que si la commande mkd est installée.
 +
#T
 +
#T Test unitaire :
 +
#T ---------------
 +
#T Renommer mkddocu mkddocu.sh ou .csh
 +
#T Editer le fichier mkddocu.sh et modifier la valeur de BACKUPSMAX limiter
 +
#T cette valeur à 3 (4 sauvegardes indicées)
 +
#T
 +
#T La commande s'autoteste
 +
#T 1. Lancer 4 fois la commande ./mkddoccu (sans paramètre)
 +
#T 2. Vérifier la commande de boucle à chaque fois, elle doit incrémenter les
 +
#T    répertoires de projets project (le dernier), puis project.1, etc.
 +
#T    Après project.3 on doit vous demander si vous désirez préserver ces
 +
#T    fichiers dans un répertoire .Backups. Répondez oui : 'y' (yes)
 +
#T 3. Vérifier que le fichier .prj prend bien en charge tous les fichiers de
 +
#T    langages de programmation de la commande mkd. Pour cela il faut évidemment
 +
#T    disposer des fichiers nécessaires. On peut en trouver sur le site EELL
 +
#T    http://edeulo.free.fr/wiki/index.php/Projet_mkd/Fichiers_en_développement
 +
#T    Les fichiers en développement sont accompagnés de leurs tests unitaires,
 +
#T    notamment le fichier find.inc.c très sollicité par la commande mkddocu.
 +
#T    Trouver des exemples aussi sur wikipedia, wikibooks.
 +
#T 4. Essayer les commandes : (dans un 'Terminal' ou une 'Konsoke')
 +
#T    ./mkddocu.sh -s
 +
#T    ./mkddocu.sh mkddocu
 +
#T    ./mkddocu.sh mkddocu -s
 +
#T    ./mkddocu.sh -s mkddocu
 +
#T    Les commandes mkd ont été éprouvées par ailleurs. Vérifiez tout de même
 +
#T    que les fichiers générés sont bien conformes.
 +
#T 5. Vérifiez que les fichiers en langage C sont pris en compte quand ils sont
 +
#T    présents. les fichiers d'entête (.h) n'ont pas à être pris en compte.
 +
#T
 +
#T
 +
#T Tests d'intégration :
 +
#T ---------------------
 +
#T Pour ces tests il faut évidemment disposer de vrais fichiers de programmation
 +
#T dans différent langages mais cela a déjà été fait lors des tests
 +
#T d'intégration de la commande mkd.
 +
#T On peut trouver ces fichiers dans chaqu'un des fichiers de tests unitaires de
 +
#T la page wiki 'fichiers' en développement citée plus haut.
 +
#T
</pre>
</pre>
{{Boîte déroulante fin}}
{{Boîte déroulante fin}}
== Test des paramètres d'entrée ==
== Test des paramètres d'entrée ==
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Commande des tests des paramètre d'entrée de mkddocu.sh (créé le 24 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:blue">
-
 
+
#!/bin/bash
 +
#Fichier Tests_paramètre
 +
let i=1          #P compteur
 +
str="false"      #P false ou true
 +
project="project" #P nom du fichier de projet .prj
 +
#
 +
#P -----------------------------------------------------------------------------
 +
#P Gestion des paramètres d'entrée
 +
#
 +
if test $1; then
 +
  if test $2; then
 +
      echo " Deux paramètres "
 +
      echo " Paramètres : 1=$1, 2=$2 "
 +
      if test $1 && [ $1 != "-s" ] ;
 +
      then
 +
        project=$1;
 +
        if [ $2 = "-s" ]; then str="true"; fi # Vérif que c'est bien -s
 +
      else
 +
        if [ $1 = "-s" ]; then str="true"; project=$2; fi
 +
      fi
 +
  else
 +
      echo " Un deul paramètre : $1 "
 +
      if test $1 && [ $1 != "-s" ] ; then project=$1; fi
 +
      if [ $1 = "-s" ]; then str="true"; fi
 +
  fi
 +
else echo " Pas de paramètre "
 +
fi
 +
echo " Projet : $project "
 +
echo " Strings ? : $str "
</pre>
</pre>
{{Boîte déroulante fin}}
{{Boîte déroulante fin}}
== Test de la boucle des sauvegardes ==
== Test de la boucle des sauvegardes ==
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Commande des tests de boucle mkddocu.sh (créé le 28 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:blue">
 +
#!/bin/bash
 +
# Tests_boucle_dans_mkddocu
 +
#
 +
# Help
 +
#
 +
if test $1; then
 +
  if [ $1 = "?" ]
 +
  then
 +
      echo " Syntax : "
 +
      echo " mkddocu [target_dir]"
 +
      echo "    → without target_dir, name of target dir is 'project' "
 +
      echo " mkddocu ? for help"
 +
      exit 1 # Used by
 +
  fi
 +
fi
 +
#
 +
# Target dir
 +
#
 +
BACKUPSMAX=3 #
 +
let i=1
 +
if test $1; then project=$1; else project="project"; fi
 +
#  then
 +
  # echo "Test files : $project.* for backup" #T debug
 +
  # echo "BACKUPSMAX=$BACKUPSMAX" #T
 +
  while ((i<=BACKUPSMAX));
 +
  do
 +
      # echo "$i" #T
 +
      if test -d $project.$i #T
 +
      then
 +
        # echo "$project.$i exist" #T
 +
#####################
 +
        if [ $i = $BACKUPSMAX ]
 +
        then
 +
            echo "Last backup $project.$i Make backup in backup dir, yes ?"
 +
            echo -n "your choice : y ? "
 +
            read char
 +
            if test $char &&  [ $char = "y" ]
 +
            then
 +
              echo "create Backups dir if not exist"
 +
              install -d Backups
 +
              # echo "cp -rf $project.* Backups/." #T
 +
              cp -rf  $project.* Backups/.
 +
              rm -rf $project.*
 +
              clear
 +
              echo "Files in dir Backups"
 +
              ls -al Backups
 +
            else
 +
              echo "exit -1"
 +
              exit -1
 +
            fi
 +
        # else echo "Continue"
 +
        fi
 +
#####################
 +
      else
 +
        # echo "$project.$i does not exist" #T
 +
        if test -d $project
 +
        then
 +
            # echo "$project exist and move dir $project to $project.$i"; #T
 +
            mv $project $project.$i
 +
        fi
 +
        #break
 +
      fi
 +
      let i++
 +
      #break
 +
  done
 +
rm -Rf $project
 +
install -d $project
 +
# echo "Projet actuel : $project"
 +
echo "blabla" > $project/fichiertest
 +
echo ""
 +
# ls
</pre>
</pre>
{{Boîte déroulante fin}}
{{Boîte déroulante fin}}
== Test de la reconnaissance des fichiers C ==
== Test de la reconnaissance des fichiers C ==
-
{{Boîte déroulante/début|titre=doc mkddocu.sh créé le 28 février 2014}}
+
{{Boîte déroulante/début|titre=Commande des tests de reconnaissance des fichiers C (mkddocu.sh créé le 24 février 2014)}}
-
<pre style="color:blue>
+
<pre style="color:blue">
-
 
+
#!/bin/bash
 +
#Fichier Tests-C
 +
if test -r *.c* ; then cfiles="true"; echo " Il y a des fichiers c* "; else echo " Pas de c*"; fi
 +
if test -r *.C* ; then cfiles="true"; echo " Il y a des fichiers C* "; else echo " Pas de C*"; fi
 +
if test $cfiles ; then echo " Il y a des fichiers c* ou C* "; else echo " Pas de c* ni C*"; fi
</pre>
</pre>
{{Boîte déroulante fin}}
{{Boîte déroulante fin}}
== Analyse globale ==
== Analyse globale ==
 +
 +
Les tests ayant été effectués au fur et à mesure il n'y a rien de spécial.
 +
 +
L'autotest a été pratiqué avec les commandes :
 +
* mkddocu (sans paramètre)
 +
* mkddocu mkddocu
 +
* mkddocu mkddocu -s
 +
* mkddocu -s mkddocu
 +
* mkddocu -s
 +
 +
Le test a aussi été effectué avec les fichiers des sources de mkd
 +
 +
Il n'y a pas eu d'autre test à ce jour (26 février 2014)
 +
 +
Cette commande reste en phase de tests ...
 +
 +
--[[Utilisateur:Eudelo|edeulo]] 26 février 2014 à 16:29 (UTC)
 +
 +
== NEWS ==
 +
 +
La version beta 140515 (7 avril 2014) corrige les inconvénients des versions précédentes.
 +
# '''Les traductions sont pleinement opérationnelles'''. Un fichier .po est disponible dans les sources.
 +
# '''L'obligation d'entrer un paramètre''' évite les exécutions non désirée.
 +
 +
=== Source des versions beta ===
 +
Downloads [http://edeulo.free.fr/pub/downloads_sources/mkd sources]
 +
 +
=== Distributions debian version beta ===
 +
Downloads [http://edeulo.free.fr/pub/mkd/dist dist]
 +
 +
[[Catégorie:Mkd]]

Version actuelle en date du 17 avril 2014 à 12:32

Cette page n'est pas finie. Veuillez considérer le plan et le contenu comme incomplets et en préparation, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable.

Retour aux fichiers en développement →

Sommaire

mkddocu.sh

Dans sa version finale le fichier sera renommé mkddocu et copié dans les répertoires /usr/bin (ou /usr/local/bin)

Document initial

La commande shell

Directive des tests

Test des paramètres d'entrée

Test de la boucle des sauvegardes

Test de la reconnaissance des fichiers C

Analyse globale

Les tests ayant été effectués au fur et à mesure il n'y a rien de spécial.

L'autotest a été pratiqué avec les commandes :

  • mkddocu (sans paramètre)
  • mkddocu mkddocu
  • mkddocu mkddocu -s
  • mkddocu -s mkddocu
  • mkddocu -s

Le test a aussi été effectué avec les fichiers des sources de mkd

Il n'y a pas eu d'autre test à ce jour (26 février 2014)

Cette commande reste en phase de tests ...

--edeulo 26 février 2014 à 16:29 (UTC)

NEWS

La version beta 140515 (7 avril 2014) corrige les inconvénients des versions précédentes.

  1. Les traductions sont pleinement opérationnelles. Un fichier .po est disponible dans les sources.
  2. L'obligation d'entrer un paramètre évite les exécutions non désirée.

Source des versions beta

Downloads sources

Distributions debian version beta

Downloads dist
Outils personnels