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()]
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