X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/stgit/blobdiff_plain/eee7283e896c65fbd86d5449886515dec6b7449c..c6f366f6b7452e24edf5bff06da8b69c500899a4:/stgit/config.py diff --git a/stgit/config.py b/stgit/config.py index 6679668..a6afbfd 100644 --- a/stgit/config.py +++ b/stgit/config.py @@ -19,12 +19,44 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ import os, ConfigParser - +from StringIO import StringIO from stgit import basedir - config = ConfigParser.RawConfigParser() +def git_config(filename): + """Open a git config file and convert it to be understood by + Python.""" + try: + f = file(filename) + cont = False + lines = [] + for line in f: + line = line.strip() + + if cont: + # continued line, add a space at the beginning + line = ' ' + line + + if line and line[-1] == '\\': + line = line[:-1].rstrip() + cont = True + else: + line = line + '\n' + cont = False + + lines.append(line) + + f.close() + cfg_str = ''.join(lines) + except IOError: + cfg_str = '' + + strio = StringIO(cfg_str) + strio.name = filename + + return strio + def config_setup(): global config @@ -37,15 +69,30 @@ def config_setup(): config.set('stgit', 'merger', 'diff3 -L current -L ancestor -L patched -m -E ' \ '"%(branch1)s" "%(ancestor)s" "%(branch2)s" > "%(output)s"') + config.set('stgit', 'autoimerge', 'no') config.set('stgit', 'keeporig', 'yes') config.set('stgit', 'keepoptimized', 'no') config.set('stgit', 'extensions', '.ancestor .current .patched') + config.set('stgit', 'shortnr', '5') # Read the configuration files (if any) and override the default settings + # stgitrc are read for backward compatibility config.read('/etc/stgitrc') config.read(os.path.expanduser('~/.stgitrc')) config.read(os.path.join(basedir.get(), 'stgitrc')) + # GIT configuration files can have a [stgit] section + try: + global_config = os.environ['GIT_CONFIG'] + except KeyError: + global_config = os.path.expanduser('~/.gitconfig') + try: + local_config = os.environ['GIT_CONFIG_LOCAL'] + except KeyError: + local_config = os.path.join(basedir.get(), 'config') + config.readfp(git_config(global_config)) + config.readfp(git_config(local_config)) + # Set the PAGER environment to the config value (if any) if config.has_option('stgit', 'pager'): os.environ['PAGER'] = config.get('stgit', 'pager')