如何让Pants将git describe
的输出存储在.pex
文件的某处,以便我可以从我正在编写的Python代码中访问它?
基本上我希望能够克隆my project并执行此操作:
./pants binary px
dist/px.pex
分发给某人px.pex --version
时,某人应该能够git describe
并打印出.pex
所说的内容。帮助!
答案 0 :(得分:0)
结果pex
在构建时已经git describe
。结果存储在PEX-INFO
文件根目录的.pex
文件中。所以要阅读它,我这样做了:
def get_version():
"""Extract version string from PEX-INFO file"""
my_pex_name = os.path.dirname(__file__)
zip = zipfile.ZipFile(my_pex_name)
with zip.open("PEX-INFO") as pex_info:
return json.load(pex_info)['build_properties']['tag']
这足够IMO,但也有缺点。如果有人有一个改进的答案,我准备切换到那个作为被接受的答案。
这次中断:
PEX-INFO
,如果有某种API调用会更好。git describe --dirty
为例。