Y a-t-il un moyen de déterminer le répertoire Bazaar par programme? S'il existe une commande bazaar pour déterminer le répertoire du plugin, ce serait la meilleure solution.Détermination par programme du répertoire du plug-in Bazaar
Répondre
Jetez un oeil à la sortie Bazaar configuration:
de bzr version
. Voir également la fonction show_version
dans bzrlib/version.py
.
Pour l'utilisation du répertoire de configuration:
from bzrlib import config
print config.config_dir()
Ou, pour le chemin de plugin utilisateur (voir bzrlib/plugin.py
):
from bzrlib import plugin
print plugin.get_user_plugin_path()
Pour une liste complète des chemins de plug-ins:
from bzrlib import plugin
print plugin.get_standard_plugins_path()
plugins Bazaar sont recherchés dans les répertoires suivants:
* <pythonlib>/site-packages/bzrlib/plugins/
(where <pythonlib> is something like usr/lib/python2.4,
depending on your installation)
* $HOME/.bazaar/plugins/
Vous pouvez définir le répertoire plugins de bazar via BZR_PLUGIN_PATH
variables environement, aussi.
En savoir plus sur les plugins de bazar: http://bazaar-vcs.org/BzrPlugins
Selon le bazar website, plugins utilisateur sont recherchés dans ~/.bazaar/plugins
par défaut, mais peut être remplacée par la variable d'environnement BZR_PLUGIN_PATH
. Donc, tester si cette variable est définie, sinon retourner la valeur par défaut. En python:
import os
user_plugin_path = os.environ.get('BZR_PLUGIN_PATH', '~/.bazaar/plugins')
Edit: cela fonctionne pour les systèmes unix, pour les fenêtres les utilisations chemin plugin est $APPDATA/bazaar/2.0/plugins
.
Le plugin système est au format bzrlib/plugins
, voir Installation d'un plugin sur la page here. Utilisez distutils
pour obtenir le préfixe (par exemple /usr/lib/python2.4/site-packages/bzrlib/plugins/):
from distutils.sysconfig import get_python_lib
global_plugin_path = os.path.join(get_python_lib(), 'bzrlib/plugins')
(Merci à la MYYN pour fournir l'autre page de documentation)
Si vous avez installé bzr dans votre système, vous pouvez utiliser l'extrait Python suivant pour obtenir la liste des répertoires où bzr Rechercher plugins:
>>> import os
>>> from bzrlib import plugin
>>> list_of_bzr_plugins_paths = [os.path.abspath(p)
for p in plugin.get_standard_plugins_path()]
- 1. Détermination du répertoire de travail d'un autre programme
- 2. Détermination du système CLR Directory
- 3. Détermination du répertoire de construction à partir de SConscript
- 4. Détermination du nom du fichier de police TTF
- 5. Définition par programme du répertoire racine d'application d'une application COM +
- 6. Détermination du numéro de version de Python Bazaar sans appeler bzr
- 7. Echec du lancement du programme Java dans le plugin eclipse
- 8. Répertoire du programme en cours sous Linux?
- 9. Détermination du modèle d'iPhone
- 10. Détermination de la date de création de l'étiquette dans Bazaar
- 11. Détermination du type d'élément WPF
- 12. Écrire une commande Bazaar plugin - register?
- 13. Développement du plugin Java Eclipse - Enregistrer tous les fichiers du projet par programme
- 14. Émulation du joystick par programme
- 15. Découverte du réseau par programme
- 16. Configuration du plugin maven
- 17. Détermination du style visuel utilisé?
- 18. Détermination du composant flash chargé
- 19. Détermination du nom de l'exécutable C
- 20. Détermination du type de papier actuel pour l'imprimante par défaut
- 21. Détermination du comportement par défaut d'un événement Flex
- 22. Accès par programme au répertoire app.config
- 23. Détermination du domaine dans un modèle ActiveRecord
- 24. SharePoint: Obtenir les catégories du répertoire du site par programmation
- 25. Installation du plugin VCSupdate
- 26. Accéder par programme au répertoire ~/Content?
- 27. Détermination par programme du fichier vers lequel une URL doit pointer avec ASP.NET 3.5 et IIS 7
- 28. Traçage du contenu du répertoire
- 29. Obtention par programme du nom virtuel du cluster SQL
- 30. Modification du nom du dossier SPFolder par programme
Les trois réponses sont correctes et il est difficile de choisir lequel est le plus correct « réponse », mais je ne besoin d'un moyen pour arriver à la version via la commande bazar plutôt que l'API interne. Je n'ai pas mentionné que j'utilisais java pas python pour obtenir ce répertoire. Donc, je vais devoir marquer cela comme la réponse :) – Craig
Si vous avez besoin de cette sortie en tant que sortie de la commande bzr, vous pouvez écrire très simple plugin bzr pour cela. – bialix
Ou même simplement lancer python avec l'extrait que j'ai fourni. – bialix