2010-06-14 4 views
1

У меня возникла проблема с написанием моего плагина Bazaar.Написание плагина Bazaar - регистрация команды?

Я пытался несколько различных вещей, и это текущее состояние моего файла:

''' Testing Bzr plugins '''              
from bzrlib.commands import Command, register_command       

version_info = (0,0,1, 'dev')             

class cmd_test_foo(Command):              
    ''' Testing is painful. '''             

    def run(self):                
     print "hi"             

register_command(cmd_test_foo) 

Вот что происходит, когда я пытаюсь выполнить мою команду:

$bzr test-foo 
hi 
bzr: ERROR: unknown command "test-foo" 

Так это действительно странно - очевидно, что я выполняю свою команду, но говорит мне, что это неизвестно?

Есть ли хорошие источники для примеров плагинов? Я посмотрел на builtins.py, как и предлагалось here, но ничего там не помогло.

ответ

2

Поскольку я не мог найти никакой реальной информации об этой ошибке в Интернете или о том, что я решил опубликовать и ответить на свой вопрос.

Когда Bazaar импортирует плагин, он создает файл .pyc, как обычно, импортируя из Python. Если что-то волшебное случается - например, редактирование его в одном каталоге и забывание его скопировать, а затем создание символической ссылки - оно никогда не будет импортировать изменения. Для регистрации bazaar необходим вызов register_command(cmd_test_foo), где cmd_test_foo - имя вашей команды. При вызове BZR помощи команд он также будет отображаться следующим образом:

$ bzr help commands 
... (snip commands) 
test-foo   Testing is painful. [testCmd] 
... (snip other commands) 

, а также

$ bzr plugins 
testCmd 0.0.1.dev 
    Testing Bzr plugins 

конечно на что последний вы также видите какие-либо другие плагины могут быть установлены.

Смежные вопросы