IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BOUML Discussion :

Récupérer le répertoire d'installation dans un plug-out


Sujet :

BOUML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Récupérer le répertoire d'installation dans un plug-out
    Bonjour,

    Nous sommes des étudiants et nous développons actuellement un plug-out pour bouml permettant d'importer des designs pattern prédéfini.

    Nous avons un petit problème : nous utilisons des fichiers de configurations externe et nous aimerions savoir s'il est possible de connaître le répertoire d'installation du plug-out, depuis celui-ci.

    Ou bien si ce n'est pas possible, le répertoire d'installation de bouml, dans ce cas, on forcera l'utilisateur à installer le plugout avec le répertoire contenant les fichiers de configuration dans le répertoire de bouml..

    Ceci nous permettrait d'éviter d'avoir à écrire le chemin vers les fichiers de configuration en dur dans le code, ce qui est le cas actuellement et qui ne nous plait pas vraiment.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    le plug-out est implémenté en C++ ou Java ?
    il tournera sous Linux et/ou Windows ?

    Est-ce que les fichiers de configurations sont (1) propres à l'utilisateur du plug-out ou (2) globaux au plug-out ?

    (1) le mieux est de placer ces fichiers en fonction du home dir de l'utilisateur, c'est ce que je fais pour Bouml

    (2) pour être utilisé un plug-out doit être déclaré, et cette déclaration peut fournir le répertoire où se trouve le plug-out, surtout si le plug-out est écrit en Java car la commande contiendra l'option -cp suivit du chemin d'accès. Si la commande ne contient pas de chemin (probablement valable que pour un plug-out en C++) c'est probablement que le plug-out est dans le même répertoire que Bouml, celui-ci sera alors donné par le répertoire courant
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse.

    Le plug out est implémenté en C++, et a terme devrait fonctionner sous windows et linux (mais dans un premier temps au moins linux).

    Les fichiers de configurations sont globaux au plug-out ( 1 fichier décrit 1 design pattern), donc le home ne me semble pas très approprié ici.

    Le problème de regarder le répertoire courant, est que celui n'est pas le répertoire ou se trouve le binaire de bouml, mais celui depuis lequel bouml à été lancé. Par exemple, si on lance depuis le Bureau, le listing du répertoire courant affichera le Bureau, et non le dossier de bouml (à moins qu'il existe une fonction c++ permettant cela, mais je ne l'ai pas trouvée).


    Sinon, il reste la solution de passer le chemin en attribut du binaire dans la déclaration du plugout, en effet j'y avait pensé. Le problème est que ça rend l'installation du plug out encore moins facile pour l'utilisateur (mais bon , on s'adresse quand même a des développeurs, donc ça devrait aller).

    A voir, mais je me posai quand même la question : comment font les logiciels de manière général sous linux pour connaitre le chemin vers leur librairies ou autre . Étant donné que ca peut changer pour toutes les distributions (entre /usr/lib ou /usr/local/lib ...), d'autant plus que les binaires sont souvent séparés dans /usr/bin il doit bien y avoir une méthode standard ?

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Citation Envoyé par Thibouf Voir le message
    A voir, mais je me posai quand même la question : comment font les logiciels de manière général sous linux pour connaitre le chemin vers leur librairies ou autre . Étant donné que ca peut changer pour toutes les distributions (entre /usr/lib ou /usr/local/lib ...), d'autant plus que les binaires sont souvent séparés dans /usr/bin il doit bien y avoir une méthode standard ?
    ils le savent soit parce que cette indications est mémorisée lors de la compilation, soit parce que les lib sont placées à des emplacements 'classiques' avec d'autres librairies

    pour info, dans le cas de Bouml j'ai besoin de pourvoir lancer les plug-outs de la distributions, c'est à dire qu'il faut ce ceux-ci soient trouvés par le système, pour cela :
    • sous linux la commande de lancement est un shell script modifiant PATH pour ajouter le répertoire ou sont les plug-outs :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      #!/bin/sh
      PATH=/usr/lib/bouml:$PATH
      export PATH
      exec /usr/lib/bouml/bouml "$@"
    • sous Windows j'installe tout les exe dans le même répertoire et l'icône de lancement indique ce répertoire comme répertoire courant


    sinon oui, le répertoire courant n'est pas la bonne solution, par contre :
    • soit vous fixer le répertoire d'installation
    • soit vous imposez que le chemin soit indiqué dans la configuration du plug-out sous Bouml, ce qui vous permet d'utiliser directement argv[0]
    • soit si argv[0] n'est pas un chemin absolu vous utilisez la valeur de la variable d'environnement PATH pour retrouver le répertoire compatible avec argv[0], car il a bien fallut que votre exe soit trouvé. si cette recherche ne donne rien avec les répertoires indiqués par PATH faites la même chose avec le répertoire courant


    Je ne sais pas comment vous allez installer votre exe et fichiers de configuration, mais si c'est un Makefile qui compile et installe, ou une installation type rpm, le chemin peut être fournis lors de la compilation par une variable du pre-processeur

    sinon il reste une solution béton si le fichier de configuration n'est pas modifié par l'utilisateur : transformer le fichier de configuration en une chaine de caractère faisant parti de l'exécutable
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ces précisions.

    Nous allons réfléchir à ce qui nous convient le mieux.

    Par contre votre dernière solution n'est pas vraiment pratique pour nous, car l'intérêt d'avoir utiliser des fichiers externe est de pouvoir en rajouter facilement sans recompiler.

  6. #6
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Citation Envoyé par Thibouf Voir le message
    l'intérêt d'avoir utiliser des fichiers externe est de pouvoir en rajouter facilement sans recompiler.
    sans aucun doute, vous prêchez un convaincu, j'ai dis cela juste au cas où
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. [Batch] Récupérer taille fichiers par jour dans un répertoire
    Par Korben-Dallas dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/10/2011, 11h28
  2. Réponses: 0
    Dernier message: 30/03/2010, 13h58
  3. [CakePHP] Install dans un sous répertoire
    Par herr_wann dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/12/2009, 10h35
  4. Installer dans un répertoire précis ?
    Par byloute dans le forum Debian
    Réponses: 1
    Dernier message: 11/01/2007, 15h19
  5. VB6: récupérer le répertoire d'installation de l'application
    Par getea85 dans le forum Installation, Déploiement et Sécurité
    Réponses: 2
    Dernier message: 28/12/2005, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo