Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 8203:3377fa11af67
ui: privatize cdata vars
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Apr 2009 16:50:44 -0500 |
parents | 4746113269c7 |
children | 797586be575d |
comparison
equal
deleted
inserted
replaced
8202:4746113269c7 | 8203:3377fa11af67 |
---|---|
15 class ui(object): | 15 class ui(object): |
16 def __init__(self, src=None): | 16 def __init__(self, src=None): |
17 self._buffers = [] | 17 self._buffers = [] |
18 self.quiet = self.verbose = self.debugflag = self.traceback = False | 18 self.quiet = self.verbose = self.debugflag = self.traceback = False |
19 self.interactive = self.report_untrusted = True | 19 self.interactive = self.report_untrusted = True |
20 self.overlay = config.config() | 20 self._ocfg = config.config() # overlay |
21 self.cdata = config.config() | 21 self._tcfg = config.config() # trusted |
22 self.ucdata = config.config() | 22 self._ucfg = config.config() # untrusted |
23 self._trustusers = {} | 23 self._trustusers = {} |
24 self._trustgroups = {} | 24 self._trustgroups = {} |
25 | 25 |
26 if src: | 26 if src: |
27 self.cdata = src.cdata.copy() | 27 self._tcfg = src._tcfg.copy() |
28 self.ucdata = src.ucdata.copy() | 28 self._ucfg = src._ucfg.copy() |
29 self.overlay = src.overlay.copy() | 29 self._ocfg = src._ocfg.copy() |
30 self._trustusers = src._trustusers.copy() | 30 self._trustusers = src._trustusers.copy() |
31 self._trustgroups = src._trustgroups.copy() | 31 self._trustgroups = src._trustgroups.copy() |
32 self.fixconfig() | 32 self.fixconfig() |
33 else: | 33 else: |
34 # we always trust global config files | 34 # we always trust global config files |
75 except IOError: | 75 except IOError: |
76 if not sections: # ignore unless we were looking for something | 76 if not sections: # ignore unless we were looking for something |
77 return | 77 return |
78 raise | 78 raise |
79 | 79 |
80 cdata = config.config() | 80 cfg = config.config() |
81 trusted = sections or trust or self._is_trusted(fp, filename) | 81 trusted = sections or trust or self._is_trusted(fp, filename) |
82 | 82 |
83 try: | 83 try: |
84 cdata.read(filename, fp, sections=sections) | 84 cfg.read(filename, fp, sections=sections) |
85 except error.ConfigError, inst: | 85 except error.ConfigError, inst: |
86 if trusted: | 86 if trusted: |
87 raise | 87 raise |
88 self.warn(_("Ignored: %s\n") % str(inst)) | 88 self.warn(_("Ignored: %s\n") % str(inst)) |
89 | 89 |
90 if trusted: | 90 if trusted: |
91 self.cdata.update(cdata) | 91 self._tcfg.update(cfg) |
92 self.cdata.update(self.overlay) | 92 self._tcfg.update(self._ocfg) |
93 self.ucdata.update(cdata) | 93 self._ucfg.update(cfg) |
94 self.ucdata.update(self.overlay) | 94 self._ucfg.update(self._ocfg) |
95 | 95 |
96 if root is None: | 96 if root is None: |
97 root = os.path.expanduser('~') | 97 root = os.path.expanduser('~') |
98 self.fixconfig(root=root) | 98 self.fixconfig(root=root) |
99 | 99 |
100 def fixconfig(self, root=None): | 100 def fixconfig(self, root=None): |
101 # translate paths relative to root (or home) into absolute paths | 101 # translate paths relative to root (or home) into absolute paths |
102 root = root or os.getcwd() | 102 root = root or os.getcwd() |
103 for c in self.cdata, self.ucdata, self.overlay: | 103 for c in self._tcfg, self._ucfg, self._ocfg: |
104 for n, p in c.items('paths'): | 104 for n, p in c.items('paths'): |
105 if p and "://" not in p and not os.path.isabs(p): | 105 if p and "://" not in p and not os.path.isabs(p): |
106 c.set("paths", n, os.path.normpath(os.path.join(root, p))) | 106 c.set("paths", n, os.path.normpath(os.path.join(root, p))) |
107 | 107 |
108 # update ui options | 108 # update ui options |
120 self._trustusers[user] = 1 | 120 self._trustusers[user] = 1 |
121 for group in self.configlist('trusted', 'groups'): | 121 for group in self.configlist('trusted', 'groups'): |
122 self._trustgroups[group] = 1 | 122 self._trustgroups[group] = 1 |
123 | 123 |
124 def setconfig(self, section, name, value): | 124 def setconfig(self, section, name, value): |
125 for cdata in (self.overlay, self.cdata, self.ucdata): | 125 for cfg in (self._ocfg, self._tcfg, self._ucfg): |
126 cdata.set(section, name, value) | 126 cfg.set(section, name, value) |
127 self.fixconfig() | 127 self.fixconfig() |
128 | 128 |
129 def _data(self, untrusted): | 129 def _data(self, untrusted): |
130 return untrusted and self.ucdata or self.cdata | 130 return untrusted and self._ucfg or self._tcfg |
131 | 131 |
132 def configsource(self, section, name, untrusted=False): | 132 def configsource(self, section, name, untrusted=False): |
133 return self._data(untrusted).source(section, name) or 'none' | 133 return self._data(untrusted).source(section, name) or 'none' |
134 | 134 |
135 def config(self, section, name, default=None, untrusted=False): | 135 def config(self, section, name, default=None, untrusted=False): |
136 value = self._data(untrusted).get(section, name, default) | 136 value = self._data(untrusted).get(section, name, default) |
137 if self.debugflag and not untrusted: | 137 if self.debugflag and not untrusted: |
138 uvalue = self.ucdata.get(section, name) | 138 uvalue = self._ucfg.get(section, name) |
139 if uvalue is not None and uvalue != value: | 139 if uvalue is not None and uvalue != value: |
140 self.warn(_("Ignoring untrusted configuration option " | 140 self.warn(_("Ignoring untrusted configuration option " |
141 "%s.%s = %s\n") % (section, name, uvalue)) | 141 "%s.%s = %s\n") % (section, name, uvalue)) |
142 return value | 142 return value |
143 | 143 |
164 return section in self._data(untrusted) | 164 return section in self._data(untrusted) |
165 | 165 |
166 def configitems(self, section, untrusted=False): | 166 def configitems(self, section, untrusted=False): |
167 items = self._data(untrusted).items(section) | 167 items = self._data(untrusted).items(section) |
168 if self.debugflag and not untrusted: | 168 if self.debugflag and not untrusted: |
169 for k,v in self.ucdata.items(section): | 169 for k,v in self._ucfg.items(section): |
170 if self.cdata.get(section, k) != v: | 170 if self._tcfg.get(section, k) != v: |
171 self.warn(_("Ignoring untrusted configuration option " | 171 self.warn(_("Ignoring untrusted configuration option " |
172 "%s.%s = %s\n") % (section, k, v)) | 172 "%s.%s = %s\n") % (section, k, v)) |
173 return items | 173 return items |
174 | 174 |
175 def walkconfig(self, untrusted=False): | 175 def walkconfig(self, untrusted=False): |
176 cdata = self._data(untrusted) | 176 cfg = self._data(untrusted) |
177 for section in cdata.sections(): | 177 for section in cfg.sections(): |
178 for name, value in self.configitems(section, untrusted): | 178 for name, value in self.configitems(section, untrusted): |
179 yield section, name, str(value).replace('\n', '\\n') | 179 yield section, name, str(value).replace('\n', '\\n') |
180 | 180 |
181 def username(self): | 181 def username(self): |
182 """Return default username to be used in commits. | 182 """Return default username to be used in commits. |