tools en ligne de commande part one

Après plusieurs mois d'absence je reviens avec un petit post sur ma gestion des tools en ligne de commande.  Généralement, ce genre d'outil n'est qu'un projet (C++, C#, C++/CLI, etc.) exéctuable qui prend un certain nombre de paramètres en entrée et génère une ou plusieurs sorties. Donc, la plupart du temps les codeurs négligent ces programmes et les codent à la va vite.

On se retrouve donc souvent avec des projets c++:
- pas très bien codés,
- qui ont des déploiements de fichiers spécifiers dans les lumbes de la configuration du projet (il peut y avoir des erreurs d'une configuration à une autre),
- que l'on ne sait pas utiliser,
- qui produisent occasionnellement des erreurs dont personne ne connait la signification.

C'est pourquoi j'ai voulu renforcer les principes suivants pour le dévelopement des outils en ligne de commande que je code:
- Le but de l'outil,
- Les paramètres possibles ainsi que leurs types,
- Des exemples d'utilisation,
- Les codes d'erreurs,
- Les données à déployer pour que l'outil fonctionne.

Chaque outil en ligne de commande a donc un fichier de configuration de la forme suivant :
<ApplicationConfig Name="TestApp" Version="1.0.0">
    <Help>General Help about TestApp</Help>
    <ParameterList>
        <Parameter Name="MyParam1" Desc="First parameter" Type="Atomic"/>
        <Parameter Name="IsMyParam2" Desc="Second parameter" Type="Flag"/>
        <Parameter Name="MyParamList3" Desc="Third parameter" Type="List"/>
    </ParameterList>
    <UsageList>
        <Usage Title="First usage">
             <Desc>
TestApp -MyParam1:"Value" -IsMyParam2
First Usage.
        </Usage>
        <Usage Title="Second usage">
             <Desc>
TestApp -MyParamList3:"Value1","Value2","Value3"
Second Usage.
        </Usage>
    </UsageList>
    <ErrorList>
        <Error Code="3" Name="TESTAPP_MYERROR" Desc="Very bad error"/>
    </ErrorList>
    <DataList>
        <Data Platform="*" BasePath="{RAGE_DEV}/Tools/WorkSpace/Configs/" DestDir="" Recurcive="true">
              <Filters>
                  <include Value="{AppName}.xml"/>
                  <!-- <exclude Value="XXXXX"> -->
              </Filters>
          </Data>
    </DataList>
</ApplicationConfig>

Ce fichier de config contient plusieurs parties:
- Help : aide générale sur l'application
- ParameterList : liste typée (Atomic, Flag ou Liste) de paramètres
- UsageList : différentes manière d'utiliser l'outil
- ErrorList : Liste des erreurs pouvant être levées
- DataList : Liste des données à déployer pour que l'outil fonctionne

Chaque outil utilise donc une classe c++ responsable de charger ce fichier et de traiter les paramètres en entrée. Cette dernière définit des erreurs (e.g. UNKNOWN_PARAMATER) et des paramètres standard (e.g. -help).



Article ajouté le 2008-12-21 , consulté 7 fois

Commentaires



Poster un commentaire





http://





Merci de recopier le nombre présent à gauche dans la case de texte ci-dessous ( Pourquoi ? )





Liens

Voir les articles de la catégorie " Programmation "

Retour aux articles



Recommander ce blog | Contacter l'auteur | Reporter un abus | S'abonner au blog Flux RSS du blog | Espace de gestion

Créer un blog gratuit avec Blog4ever