git status
にスペースを含むプログラム名 ( など)を含めるにはどうすればよいdocopt
ですか? Perl スクリプトが Python スクリプトをディスパッチするセットアップがあります。Perl スクリプトはさまざまな方法で呼び出すことができます。簡単にするために次のように言いましょうprog sub1 sub2
。したがって、Perl スクリプトの名前はprog
. これで、sub2
usingという Python スクリプトがディスパッチされsub2 --progName="prog sub1 sub2" [options]
ます。(したがって、実際のプログラム名はsub2
butではありませんprog sub1 sub2
)。docopt
たとえば、 を使用してこのスキームを実装しようとしました。
"""Usage: %progName% [-h]
Options:
-h --help
"""
from docopt import docopt
import sys
if __name__ == '__main__':
progName=sys.argv[0]
for i, arg in enumerate(sys.argv):
if arg.startswith('--progName='):
ind=arg.index("=")+1
progName=arg[ind:]
del sys.argv[i]
break
doc=__doc__.replace('%progName%',progName)
args = docopt(doc)
print(args)
ただし、これはコマンド名 ( ) にスペースがあると機能しませんprog sub1 sub2
。