2017-05-25 1 views
3

Disons que nous sommes dans un environnement Python, et que nous pourrions être sur Windows, OSX ou Linux.Comment est-ce que je découvre par programme l'éditeur git utilise, multiplate-forme?

Comment détermine-t-on l'éditeur utilisé par git?

Si c'était la variable d'environnement, nous pourrions faire:

os.getenv('GIT_EDITOR') 

Mais il pourrait aussi être dans la configuration.

Pourrait analyser les fichiers de configuration git, mais nous ne voulons pas réimplémenter toute la recherche (repo, utilisateur, système?).

La question:

Comment pouvons-nous découvrir les utilisations de programmation git éditeur?

Répondre

5

Exécuter git var GIT_EDITOR. La sortie résultante est le nom de l'éditeur à utiliser, adapté pour passer à une coquille:

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 

(si et comment vous voulez stringify octets est à vous bien sûr).