Commit | Line | Data |
---|---|---|
41a6d859 CM |
1 | """Handles the Stacked GIT configuration files |
2 | """ | |
3 | ||
4 | __copyright__ = """ | |
5 | Copyright (C) 2005, Catalin Marinas <catalin.marinas@gmail.com> | |
6 | ||
7 | This program is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License version 2 as | |
9 | published by the Free Software Foundation. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 | """ | |
20 | ||
21 | import os, ConfigParser | |
22 | ||
170f576b | 23 | from stgit import basedir |
41a6d859 | 24 | |
41a6d859 CM |
25 | |
26 | config = ConfigParser.RawConfigParser() | |
27 | ||
47e93ba9 CM |
28 | # Set the defaults |
29 | config.add_section('stgit') | |
30 | config.set('stgit', 'autoresolved', 'no') | |
31 | config.set('stgit', 'smtpserver', 'localhost:25') | |
b3bfa120 CM |
32 | config.set('stgit', 'smtpdelay', '5') |
33 | config.set('stgit', 'pullcmd', 'git-pull') | |
c19dc3db | 34 | config.set('stgit', 'merger', |
d7fade4b | 35 | 'diff3 -L current -L ancestor -L patched -m -E ' \ |
47e93ba9 | 36 | '"%(branch1)s" "%(ancestor)s" "%(branch2)s" > "%(output)s"') |
c19dc3db | 37 | config.set('stgit', 'keeporig', 'yes') |
d7fade4b | 38 | config.set('stgit', 'extensions', '.ancestor .current .patched') |
47e93ba9 CM |
39 | |
40 | # Read the configuration files (if any) and override the default settings | |
41 | config.read('/etc/stgitrc') | |
41a6d859 | 42 | config.read(os.path.expanduser('~/.stgitrc')) |
170f576b | 43 | config.read(os.path.join(basedir.get(), 'stgitrc')) |
c19dc3db | 44 | |
52f3900c CM |
45 | # Set the PAGER environment to the config value (if any) |
46 | if config.has_option('stgit', 'pager'): | |
47 | os.environ['PAGER'] = config.get('stgit', 'pager') | |
48 | ||
c19dc3db CM |
49 | # [gitmergeonefile] section is deprecated. In case it exists copy the |
50 | # options/values to the [stgit] one | |
51 | if config.has_section('gitmergeonefile'): | |
52 | for option, value in config.items('gitmergeonefile'): | |
53 | config.set('stgit', option, value) | |
d7fade4b CM |
54 | |
55 | ||
56 | # cached extensions | |
57 | __extensions = None | |
58 | ||
59 | def file_extensions(): | |
60 | """Returns a dictionary with the conflict file extensions | |
61 | """ | |
62 | global __extensions | |
63 | ||
64 | if not __extensions: | |
65 | cfg_ext = config.get('stgit', 'extensions').split() | |
66 | if len(cfg_ext) != 3: | |
67 | raise CmdException, '"extensions" configuration error' | |
68 | ||
69 | __extensions = { 'ancestor': cfg_ext[0], | |
70 | 'current': cfg_ext[1], | |
71 | 'patched': cfg_ext[2] } | |
72 | ||
73 | return __extensions |