git подкоманда с --help arg, не работает - PullRequest
1 голос
/ 20 февраля 2020

Имея этот пример кода:

#!/usr/bin/env python3
import argparse


def main():
    parser = argparse.ArgumentParser(description="Some Description")
    parser.add_argument('some-arg')
    args = parser.parse_args()
    print(args)

if __name__ == '__main__':
    main()

Я добавил этот код в файл с именем git-mycommand, сделал его исполняемым и скопировал его в /usr/bin.

Теперь пытаюсь запустить команду с --help, дает мне этот непреднамеренный вывод :

user@user:~$ git mycommand --help
No manual entry for git-mycommand
See 'man 7 undocumented' for help when manual pages are not available.

Если я запускаю команду нормально без --help, она работает правильно, как:

oerp@oerp:~$ git mycommand some_val
Namespace(**{'some-arg': 'some_val'})

Или, если я не использую его как подкоманду git и запускаю ее напрямую, например:

oerp@oerp:~$ git-mycommand --help
usage: git-mycommand [-h] some-arg

Some Description

positional arguments:
  some-arg

optional arguments:
  -h, --help  show this help message and exit

Кто-нибудь знает, почему подкоманда custom git не работает должным образом с аргументом --help? Или, может быть, есть что-то еще, что мне нужно сделать, чтобы он показывал предполагаемый вывод?

1 Ответ

0 голосов
/ 20 февраля 2020

Команда git получает параметр --help, а не вашу подкоманду.

Обратите внимание, что git --help ... идентичен git help ..., поскольку первое преобразовано внутренне в последнее.

https://git-scm.com/docs/git-help

git help вызывает git -help, который открывает страницу руководства для данной команды.

...