Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/ui.py @ 3433:5ee5a0fec904
add ui.readsections
Given a file name and a set of sections, this function reads the file
and adds only the specified sections to the configuration data.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Tue, 17 Oct 2006 16:59:24 -0300 |
parents | ec6f400cff4d |
children | 8b55c0ba8048 |
comparison
equal
deleted
inserted
replaced
3432:2300632a3bc8 | 3433:5ee5a0fec904 |
---|---|
13 def dupconfig(orig): | 13 def dupconfig(orig): |
14 new = util.configparser(orig.defaults()) | 14 new = util.configparser(orig.defaults()) |
15 updateconfig(orig, new) | 15 updateconfig(orig, new) |
16 return new | 16 return new |
17 | 17 |
18 def updateconfig(source, dest): | 18 def updateconfig(source, dest, sections=None): |
19 for section in source.sections(): | 19 if not sections: |
20 sections = source.sections() | |
21 for section in sections: | |
20 if not dest.has_section(section): | 22 if not dest.has_section(section): |
21 dest.add_section(section) | 23 dest.add_section(section) |
22 for name, value in source.items(section, raw=True): | 24 for name, value in source.items(section, raw=True): |
23 dest.set(section, name, value) | 25 dest.set(section, name, value) |
24 | 26 |
97 for hook in self.readhooks: | 99 for hook in self.readhooks: |
98 hook(self) | 100 hook(self) |
99 | 101 |
100 def addreadhook(self, hook): | 102 def addreadhook(self, hook): |
101 self.readhooks.append(hook) | 103 self.readhooks.append(hook) |
104 | |
105 def readsections(self, filename, *sections): | |
106 "read filename and add only the specified sections to the config data" | |
107 if not sections: | |
108 return | |
109 | |
110 cdata = util.configparser() | |
111 try: | |
112 cdata.read(filename) | |
113 except ConfigParser.ParsingError, inst: | |
114 raise util.Abort(_("failed to parse %s\n%s") % (f, inst)) | |
115 | |
116 for section in sections: | |
117 if not cdata.has_section(section): | |
118 cdata.add_section(section) | |
119 | |
120 updateconfig(cdata, self.cdata, sections) | |
102 | 121 |
103 def fixconfig(self, section=None, name=None, value=None, root=None): | 122 def fixconfig(self, section=None, name=None, value=None, root=None): |
104 # translate paths relative to root (or home) into absolute paths | 123 # translate paths relative to root (or home) into absolute paths |
105 if section is None or section == 'paths': | 124 if section is None or section == 'paths': |
106 if root is None: | 125 if root is None: |