X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/41a6d8591d5962dbfe8e372fff10c60e06718083..8ebae56bad042edf75f7d290469fea166a20d045:/stgit/config.py diff --git a/stgit/config.py b/stgit/config.py index 3bbbd0d..a2e29bb 100644 --- a/stgit/config.py +++ b/stgit/config.py @@ -20,14 +20,55 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import os, ConfigParser +from stgit import basedir -if 'GIT_DIR' in os.environ: - __git_dir = os.environ['GIT_DIR'] -else: - __git_dir = '.git' config = ConfigParser.RawConfigParser() -config.readfp(file('/etc/stgitrc')) +# Set the defaults +config.add_section('stgit') +config.set('stgit', 'autoresolved', 'no') +config.set('stgit', 'smtpserver', 'localhost:25') +config.set('stgit', 'smtpdelay', '5') +config.set('stgit', 'pullcmd', 'git-pull') +config.set('stgit', 'merger', + 'diff3 -L current -L ancestor -L patched -m -E ' \ + '"%(branch1)s" "%(ancestor)s" "%(branch2)s" > "%(output)s"') +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 +config.read('/etc/stgitrc') config.read(os.path.expanduser('~/.stgitrc')) -config.read(os.path.join(__git_dir, 'stgitrc')) +config.read(os.path.join(basedir.get(), 'stgitrc')) + +# Set the PAGER environment to the config value (if any) +if config.has_option('stgit', 'pager'): + os.environ['PAGER'] = config.get('stgit', 'pager') + +# [gitmergeonefile] section is deprecated. In case it exists copy the +# options/values to the [stgit] one +if config.has_section('gitmergeonefile'): + for option, value in config.items('gitmergeonefile'): + config.set('stgit', option, value) + + +# cached extensions +__extensions = None + +def file_extensions(): + """Returns a dictionary with the conflict file extensions + """ + global __extensions + + if not __extensions: + cfg_ext = config.get('stgit', 'extensions').split() + if len(cfg_ext) != 3: + raise CmdException, '"extensions" configuration error' + + __extensions = { 'ancestor': cfg_ext[0], + 'current': cfg_ext[1], + 'patched': cfg_ext[2] } + + return __extensions