2017-05-25 47 views
3

假設我們處於Python環境中,並且可以在Windows,OSX或Linux上運行。如何以編程方式發現git使用的編輯器,跨平臺?

我們如何確定git使用的編輯器?

如果這只是環境變量,我們可以這樣做:

os.getenv('GIT_EDITOR') 

但它也可能是在config。

可以解析git配置文件,但我們不想重新實現整個搜索(repo,user,system?)。

問題:

我們如何以編程方式發現編輯器的git使用?

回答

5

運行git var GIT_EDITOR。輸出的結果是使用編輯器的名稱,適合傳遞到外殼:

import subprocess 

def git_var(what): 
    "return GIT_EDITOR or GIT_PAGER, for instance" 
    proc = subprocess.Popen(['git', 'var', what], shell=False, 
     stdout=subprocess.PIPE) 
    output = proc.stdout.read() 
    status = proc.wait() 
    if status != 0: 
     ... raise some error ... 
    output = output.rstrip(b'\n') 
    output = output.decode('utf8', errors='ignore') # or similar for py3k 
    return output 

(是否和如何你想字節字符串化是給你的課程)。