Mercurial > hg > config
comparison python/hgrc.py @ 486:c9aab7092af1
python/hgrc.py
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sat, 10 Aug 2013 21:13:42 -0700 |
parents | e192c235d5d6 |
children | 178419da6e0b |
comparison
equal
deleted
inserted
replaced
485:e192c235d5d6 | 486:c9aab7092af1 |
---|---|
19 | 19 |
20 class section(object): | 20 class section(object): |
21 def __init__(self, section_name, *section_names): | 21 def __init__(self, section_name, *section_names): |
22 self.sections = [section_name] | 22 self.sections = [section_name] |
23 self.sections.extend(section_names) | 23 self.sections.extend(section_names) |
24 def __call__(self, parser): | 24 def __call__(self, function): |
25 def wrapped(parser, *args, **kwargs): | 25 def wrapped(parser, *args, **kwargs): |
26 for section in self.sections: | 26 for section in self.sections: |
27 if section not in parser.sections(): | 27 if section not in parser.sections(): |
28 parser.add_section(section) | 28 parser.add_section(section) |
29 f(*args, **kwargs) | 29 function(parser, *args, **kwargs) |
30 return wrapped | 30 return wrapped |
31 | 31 |
32 #@parser # decorator makes this x-form path -> ConfigParser automagically | 32 #@parser # decorator makes this x-form path -> ConfigParser automagically |
33 @section('paths') | 33 @section('paths') |
34 def set_default(parser, default): | 34 def set_default(parser, default): |
35 """set [paths]:default""" | 35 """set [paths]:default""" |
36 print 'OIOIOIOI!' | |
36 | 37 |
37 @section('paths') | 38 @section('paths') |
38 def set_default_push(parser, default_push): | 39 def set_default_push(parser, default_push): |
39 """ | 40 """ |
40 set [paths]:default-push to `default_push` | 41 set [paths]:default-push to `default_push` |
174 | 175 |
175 # cache for later (XXX) | 176 # cache for later (XXX) |
176 print_ini = actions.pop('print_ini', None) | 177 print_ini = actions.pop('print_ini', None) |
177 | 178 |
178 # alter .hgrc files | 179 # alter .hgrc files |
179 for action_name, parameter in actions: | 180 for action_name, parameter in actions.items(): |
180 | 181 |
181 # XXX crappy | 182 # XXX crappy |
182 method = action_map[action_name] | 183 method = action_map[action_name] |
183 if action_name == 'default_push_ssh': | 184 if action_name == 'default_push_ssh': |
184 parameter = None | 185 parameter = None |
185 | 186 |
186 # apply to all files | 187 # apply to all files |
187 for path, ini in config.items(): | 188 for path, ini in config.items(): |
188 | 189 |
189 # call method with parser | 190 # call method with parser |
190 if parameter is not None: | 191 if parameter is None: |
192 method(ini) | |
193 else: | |
191 method(ini, parameter) | 194 method(ini, parameter) |
192 else: | |
193 method(ini) | |
194 | 195 |
195 # print .hgrc files, if specified | 196 # print .hgrc files, if specified |
196 if print_ini: | 197 if print_ini: |
197 for path, ini in config.items(): | 198 for path, ini in config.items(): |
198 print '+++ %s' % (path) | 199 print '+++ %s' % (path) |