##// END OF EJS Templates
load extensions only after the ui object has been completely initialized...
Alexis S. L. Carvalho -
r3014:01454af6 default
parent child Browse files
Show More
@@ -0,0 +1,9 b''
1 #!/bin/sh
2
3 echo 'syntax error' > badext.py
4 abspath=`pwd`/badext.py
5
6 echo '[extensions]' >> $HGRCPATH
7 echo "badext = $abspath" >> $HGRCPATH
8
9 hg -q help help
@@ -0,0 +1,4 b''
1 *** failed to import extension badext: invalid syntax (badext.py, line 1)
2 hg help [COMMAND]
3
4 show help for a command, extension, or list of commands
@@ -3305,12 +3305,14 b' def dispatch(args):'
3305 if num: signal.signal(num, catchterm)
3305 if num: signal.signal(num, catchterm)
3306
3306
3307 try:
3307 try:
3308 u = ui.ui(traceback='--traceback' in sys.argv[1:],
3308 u = ui.ui(traceback='--traceback' in sys.argv[1:])
3309 readhooks=[load_extensions])
3310 except util.Abort, inst:
3309 except util.Abort, inst:
3311 sys.stderr.write(_("abort: %s\n") % inst)
3310 sys.stderr.write(_("abort: %s\n") % inst)
3312 return -1
3311 return -1
3313
3312
3313 load_extensions(u)
3314 u.addreadhook(load_extensions)
3315
3314 try:
3316 try:
3315 cmd, func, args, options, cmdoptions = parse(u, args)
3317 cmd, func, args, options, cmdoptions = parse(u, args)
3316 if options["time"]:
3318 if options["time"]:
@@ -12,13 +12,12 b' demandload(globals(), "ConfigParser mdif'
12
12
13 class ui(object):
13 class ui(object):
14 def __init__(self, verbose=False, debug=False, quiet=False,
14 def __init__(self, verbose=False, debug=False, quiet=False,
15 interactive=True, traceback=False, parentui=None,
15 interactive=True, traceback=False, parentui=None):
16 readhooks=[]):
17 self.overlay = {}
16 self.overlay = {}
18 if parentui is None:
17 if parentui is None:
19 # this is the parent of all ui children
18 # this is the parent of all ui children
20 self.parentui = None
19 self.parentui = None
21 self.readhooks = list(readhooks)
20 self.readhooks = []
22 self.trusted_users = {}
21 self.trusted_users = {}
23 self.trusted_groups = {}
22 self.trusted_groups = {}
24 self.cdata = ConfigParser.SafeConfigParser()
23 self.cdata = ConfigParser.SafeConfigParser()
@@ -38,7 +37,7 b' class ui(object):'
38 else:
37 else:
39 # parentui may point to an ui object which is already a child
38 # parentui may point to an ui object which is already a child
40 self.parentui = parentui.parentui or parentui
39 self.parentui = parentui.parentui or parentui
41 self.readhooks = list(parentui.readhooks or readhooks)
40 self.readhooks = parentui.readhooks[:]
42 self.trusted_users = parentui.trusted_users.copy()
41 self.trusted_users = parentui.trusted_users.copy()
43 self.trusted_groups = parentui.trusted_groups.copy()
42 self.trusted_groups = parentui.trusted_groups.copy()
44 parent_cdata = self.parentui.cdata
43 parent_cdata = self.parentui.cdata
@@ -110,6 +109,9 b' class ui(object):'
110 for hook in self.readhooks:
109 for hook in self.readhooks:
111 hook(self)
110 hook(self)
112
111
112 def addreadhook(self, hook):
113 self.readhooks.append(hook)
114
113 def setconfig(self, section, name, val):
115 def setconfig(self, section, name, val):
114 self.overlay[(section, name)] = val
116 self.overlay[(section, name)] = val
115
117
General Comments 0
You need to be logged in to leave comments. Login now