2016-03-02 42 views
-1

我怎樣才能得到Pantsgit describe某處輸出存儲在我的.pex文件,這樣就可以從Python代碼我寫訪問它建?--version支持與西褲

基本上我希望能夠克隆my project和做到這一點:

  1. ./pants binary px
  2. 發佈最終dist/px.pex給別人
  3. 應該有人能夠做到px.pex --version和獲得的打印輸出什麼git describe表示我在第一步建立了.pex

幫助!

+0

爲什麼downvote?澄清將是受歡迎的:) –

回答

0

原來pex已經做git describe構建。將結果存儲在.pex文件的根目錄中的PEX-INFO文件中。所以閱讀它,我做到了這一點:

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