Python で複雑な水銀コミット フックを作成しようとしています。OptionParser を使用してパラメーターを渡すことも許可したいと考えています。これが私がこれまでに持っているものの要点です:
.hg/hgrc 構成:
[hooks]
commit = python:/mydir/pythonFile.py:main
# using python:/mydir/pythonFile.py doesn't work for some reason either
pythonFile.py:
def main(ui, repo, **kwargs):
from optparse import OptionParser
parser = OptionParser()
parser.add_option('--test-dir', action='store', type="string",
dest='test_dir', default='otherdir/',
help='help info')
(options, args) = parser.parse_args()
# do some stuff here
someFunc(options.test_dir)
if __name__ == '__main__':
import sys
main(sys.argv[0], sys.argv[1], sys.argv[2:])
実行するhg commit -m 'message'
と、「使用法: hg [オプション] hg: エラー: そのようなオプションはありません: -m」というエラーが表示されます。試してみるhg commit --test-dir '/somedir'
と、「hg commit: オプション --test-dir が認識されません」というエラーが表示されます。
最後にcommit = python:/mydir/pythonFile.py:main --test-dir '/somedir'
、hgrc 構成で指定しようとしたところ、次のエラーが発生しました: "AttributeError: 'module' object has no attribute 'main --test-dir '/somedir''"
ご協力ありがとうございました。