comparison mercurial/ui.py @ 1473:7d66ce9895fa

make readconfig take a filename instead of a file pointer as argument catch parse error while reading a config file add a testcase for parse error
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Thu, 27 Oct 2005 13:40:56 -0700
parents bf109779f48b
children a4ba63e04134
comparison
equal deleted inserted replaced
1472:3c909a747d7f 1473:7d66ce9895fa
13 class ui: 13 class ui:
14 def __init__(self, verbose=False, debug=False, quiet=False, 14 def __init__(self, verbose=False, debug=False, quiet=False,
15 interactive=True): 15 interactive=True):
16 self.overlay = {} 16 self.overlay = {}
17 self.cdata = ConfigParser.SafeConfigParser() 17 self.cdata = ConfigParser.SafeConfigParser()
18 self.cdata.read(util.rcpath) 18 self.readconfig(util.rcpath)
19 19
20 self.quiet = self.configbool("ui", "quiet") 20 self.quiet = self.configbool("ui", "quiet")
21 self.verbose = self.configbool("ui", "verbose") 21 self.verbose = self.configbool("ui", "verbose")
22 self.debugflag = self.configbool("ui", "debug") 22 self.debugflag = self.configbool("ui", "debug")
23 self.interactive = self.configbool("ui", "interactive", True) 23 self.interactive = self.configbool("ui", "interactive", True)
29 self.quiet = (self.quiet or quiet) and not verbose and not debug 29 self.quiet = (self.quiet or quiet) and not verbose and not debug
30 self.verbose = (self.verbose or verbose) or debug 30 self.verbose = (self.verbose or verbose) or debug
31 self.debugflag = (self.debugflag or debug) 31 self.debugflag = (self.debugflag or debug)
32 self.interactive = (self.interactive and interactive) 32 self.interactive = (self.interactive and interactive)
33 33
34 def readconfig(self, fp): 34 def readconfig(self, fn):
35 self.cdata.readfp(fp) 35 try:
36 self.cdata.read(fn)
37 except ConfigParser.ParsingError, inst:
38 raise util.Abort(_("Failed to parse %s\n%s") % (fn, inst))
36 39
37 def setconfig(self, section, name, val): 40 def setconfig(self, section, name, val):
38 self.overlay[(section, name)] = val 41 self.overlay[(section, name)] = val
39 42
40 def config(self, section, name, default=None): 43 def config(self, section, name, default=None):