comparison mercurial/ui.py @ 960:abfb5cc97fcd

Add ui.setconfig overlay This can simplify option passing
author mpm@selenic.com
date Fri, 19 Aug 2005 21:25:25 -0800
parents 52d8d81e72ad
children 4f81068ed8cd
comparison
equal deleted inserted replaced
959:0aaeee519c66 960:abfb5cc97fcd
10 demandload(globals(), "re socket sys util") 10 demandload(globals(), "re socket sys util")
11 11
12 class ui: 12 class ui:
13 def __init__(self, verbose=False, debug=False, quiet=False, 13 def __init__(self, verbose=False, debug=False, quiet=False,
14 interactive=True): 14 interactive=True):
15 self.overlay = {}
15 self.cdata = ConfigParser.SafeConfigParser() 16 self.cdata = ConfigParser.SafeConfigParser()
16 self.cdata.read([os.path.normpath(hgrc) for hgrc in 17 self.cdata.read([os.path.normpath(hgrc) for hgrc in
17 "/etc/mercurial/hgrc", os.path.expanduser("~/.hgrc")]) 18 "/etc/mercurial/hgrc", os.path.expanduser("~/.hgrc")])
18 19
19 self.quiet = self.configbool("ui", "quiet") 20 self.quiet = self.configbool("ui", "quiet")
27 self.interactive = (self.interactive and interactive) 28 self.interactive = (self.interactive and interactive)
28 29
29 def readconfig(self, fp): 30 def readconfig(self, fp):
30 self.cdata.readfp(fp) 31 self.cdata.readfp(fp)
31 32
32 def config(self, section, val, default=None): 33 def setconfig(self, section, name, val):
33 if self.cdata.has_option(section, val): 34 self.overlay[(section, name)] = val
34 return self.cdata.get(section, val) 35
36 def config(self, section, name, default=None):
37 if self.overlay.has_key((section, name)):
38 return self.overlay[(section, name)]
39 if self.cdata.has_option(section, name):
40 return self.cdata.get(section, name)
35 return default 41 return default
36 42
37 def configbool(self, section, val, default=False): 43 def configbool(self, section, name, default=False):
38 if self.cdata.has_option(section, val): 44 if self.overlay.has_key((section, name)):
39 return self.cdata.getboolean(section, val) 45 return self.overlay[(section, name)]
46 if self.cdata.has_option(section, name):
47 return self.cdata.getboolean(section, name)
40 return default 48 return default
41 49
42 def configitems(self, section): 50 def configitems(self, section):
43 if self.cdata.has_section(section): 51 if self.cdata.has_section(section):
44 return self.cdata.items(section) 52 return self.cdata.items(section)