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') |
925ff4a7 | 38 | config.set('stgit', 'keepoptimized', 'no') |
d7fade4b | 39 | config.set('stgit', 'extensions', '.ancestor .current .patched') |
47e93ba9 CM |
40 | |
41 | # Read the configuration files (if any) and override the default settings | |
42 | config.read('/etc/stgitrc') | |
41a6d859 | 43 | config.read(os.path.expanduser('~/.stgitrc')) |
170f576b | 44 | config.read(os.path.join(basedir.get(), 'stgitrc')) |
c19dc3db | 45 | |
52f3900c CM |
46 | # Set the PAGER environment to the config value (if any) |
47 | if config.has_option('stgit', 'pager'): | |
48 | os.environ['PAGER'] = config.get('stgit', 'pager') | |
49 | ||
c19dc3db CM |
50 | # [gitmergeonefile] section is deprecated. In case it exists copy the |
51 | # options/values to the [stgit] one | |
52 | if config.has_section('gitmergeonefile'): | |
53 | for option, value in config.items('gitmergeonefile'): | |
54 | config.set('stgit', option, value) | |
d7fade4b CM |
55 | |
56 | ||
57 | # cached extensions | |
58 | __extensions = None | |
59 | ||
60 | def file_extensions(): | |
61 | """Returns a dictionary with the conflict file extensions | |
62 | """ | |
63 | global __extensions | |
64 | ||
65 | if not __extensions: | |
66 | cfg_ext = config.get('stgit', 'extensions').split() | |
67 | if len(cfg_ext) != 3: | |
68 | raise CmdException, '"extensions" configuration error' | |
69 | ||
70 | __extensions = { 'ancestor': cfg_ext[0], | |
71 | 'current': cfg_ext[1], | |
72 | 'patched': cfg_ext[2] } | |
73 | ||
74 | return __extensions |