Projet mkd/mkddocu.sh
De Wiki EELL.
(Différences entre les versions)
m (→Document initial : correction) |
m (→La commande shell : copie) |
||
Ligne 80 : | Ligne 80 : | ||
=== La commande shell === | === La commande shell === | ||
- | {{Boîte déroulante/début|titre= | + | {{Boîte déroulante/début|titre=commande shell mkddocu.sh créé le 28 février 2014}} |
- | <pre style="color: | + | <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}} |
Version du 26 février 2014 à 15:54
![]() | 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[masquer] |
mkddocu.sh
Dans sa version finale le fichier sera renommé mkddocu et copié dans les répertoires /usr/bin (ou /usr/local/bin)