Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 8136:6b5522cb2ad2
ui: refactor option setting
No more passing options as constructor keywords. Basic options are now
always stored in the overlay for simplicity and consistency.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 23 Apr 2009 15:40:10 -0500 |
parents | 16771d7c64e2 |
children | 7fd0616b3d80 |
comparison
equal
deleted
inserted
replaced
8135:16771d7c64e2 | 8136:6b5522cb2ad2 |
---|---|
22 dest.add_section(section) | 22 dest.add_section(section) |
23 for name, value in source.items(section, raw=True): | 23 for name, value in source.items(section, raw=True): |
24 dest.set(section, name, value) | 24 dest.set(section, name, value) |
25 | 25 |
26 class ui(object): | 26 class ui(object): |
27 def __init__(self, verbose=False, debug=False, quiet=False, | 27 def __init__(self, parentui=None): |
28 interactive=True, traceback=False, report_untrusted=True, | |
29 parentui=None): | |
30 self.buffers = [] | 28 self.buffers = [] |
29 self.quiet = self.verbose = self.debugflag = self.traceback = False | |
30 self.interactive = self.report_untrusted = True | |
31 | |
31 if parentui is None: | 32 if parentui is None: |
32 # this is the parent of all ui children | 33 # this is the parent of all ui children |
33 self.parentui = None | 34 self.parentui = None |
34 self.quiet = quiet | |
35 self.verbose = verbose | |
36 self.debugflag = debug | |
37 self.interactive = interactive | |
38 self.traceback = traceback | |
39 self.report_untrusted = report_untrusted | |
40 self.trusted_users = {} | 35 self.trusted_users = {} |
41 self.trusted_groups = {} | 36 self.trusted_groups = {} |
42 self.overlay = util.configparser() | 37 self.overlay = util.configparser() |
43 # if ucdata is not None, its keys must be a superset of cdata's | 38 # if ucdata is not None, its keys must be a superset of cdata's |
44 self.cdata = util.configparser() | 39 self.cdata = util.configparser() |
45 self.ucdata = None | 40 self.ucdata = None |
46 # we always trust global config files | 41 # we always trust global config files |
47 self.readconfig(util.rcpath(), assumetrusted=True) | 42 self.readconfig(util.rcpath(), assumetrusted=True) |
48 self.updateopts(verbose, debug, quiet, interactive) | |
49 else: | 43 else: |
50 # parentui may point to an ui object which is already a child | 44 # parentui may point to an ui object which is already a child |
51 self.parentui = parentui.parentui or parentui | 45 self.parentui = parentui.parentui or parentui |
52 self.trusted_users = parentui.trusted_users.copy() | 46 self.trusted_users = parentui.trusted_users.copy() |
53 self.trusted_groups = parentui.trusted_groups.copy() | 47 self.trusted_groups = parentui.trusted_groups.copy() |
64 return getattr(self.parentui, key) | 58 return getattr(self.parentui, key) |
65 | 59 |
66 _isatty = None | 60 _isatty = None |
67 def isatty(self): | 61 def isatty(self): |
68 if ui._isatty is None: | 62 if ui._isatty is None: |
69 ui._isatty = sys.stdin.isatty() | 63 try: |
64 ui._isatty = sys.stdin.isatty() | |
65 except AttributeError: # not a real file object | |
66 ui._isatty = False | |
70 return ui._isatty | 67 return ui._isatty |
71 | 68 |
72 def updateopts(self, verbose=False, debug=False, quiet=False, | 69 def updateopts(self, config): |
73 interactive=True, traceback=False, config=[]): | |
74 for section, name, value in config: | 70 for section, name, value in config: |
75 self.setconfig(section, name, value) | 71 self.setconfig(section, name, value) |
76 | |
77 if quiet or verbose or debug: | |
78 self.setconfig('ui', 'quiet', str(bool(quiet))) | |
79 self.setconfig('ui', 'verbose', str(bool(verbose))) | |
80 self.setconfig('ui', 'debug', str(bool(debug))) | |
81 | |
82 if not interactive: | |
83 self.setconfig('ui', 'interactive', 'False') | |
84 self.interactive = False | |
85 | |
86 self.traceback = self.traceback or traceback | |
87 | 72 |
88 def verbosity_constraints(self): | 73 def verbosity_constraints(self): |
89 self.quiet = self.configbool('ui', 'quiet') | 74 self.quiet = self.configbool('ui', 'quiet') |
90 self.verbose = self.configbool('ui', 'verbose') | 75 self.verbose = self.configbool('ui', 'verbose') |
91 self.debugflag = self.configbool('ui', 'debug') | 76 self.debugflag = self.configbool('ui', 'debug') |
213 else: | 198 else: |
214 self.interactive = interactive | 199 self.interactive = interactive |
215 if name is None or name == 'report_untrusted': | 200 if name is None or name == 'report_untrusted': |
216 self.report_untrusted = ( | 201 self.report_untrusted = ( |
217 self.configbool("ui", "report_untrusted", True)) | 202 self.configbool("ui", "report_untrusted", True)) |
203 self.traceback = self.configbool('ui', 'traceback', False) | |
218 | 204 |
219 # update trust information | 205 # update trust information |
220 if (section is None or section == 'trusted') and self.trusted_users: | 206 if (section is None or section == 'trusted') and self.trusted_users: |
221 for user in self.configlist('trusted', 'users'): | 207 for user in self.configlist('trusted', 'users'): |
222 self.trusted_users[user] = 1 | 208 self.trusted_users[user] = 1 |