"""
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
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')
# 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')