mercurial/ui.py
changeset 3011 01454af644b8
parent 3010 494521a3f142
child 3035 1efd5a6df5a3
equal deleted inserted replaced
3010:494521a3f142 3011:01454af644b8
    10 demandload(globals(), "errno getpass os re socket sys tempfile")
    10 demandload(globals(), "errno getpass os re socket sys tempfile")
    11 demandload(globals(), "ConfigParser mdiff templater traceback util")
    11 demandload(globals(), "ConfigParser mdiff templater traceback util")
    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()
    25             self.readconfig(util.rcpath())
    24             self.readconfig(util.rcpath())
    26 
    25 
    36             self.prev_header = []
    35             self.prev_header = []
    37             self.revlogopts = self.configrevlog()
    36             self.revlogopts = self.configrevlog()
    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
    45             self.cdata = ConfigParser.SafeConfigParser(parent_cdata.defaults())
    44             self.cdata = ConfigParser.SafeConfigParser(parent_cdata.defaults())
    46             # make interpolation work
    45             # make interpolation work
   107                 self.trusted_users[user] = 1
   106                 self.trusted_users[user] = 1
   108             for group in self.configlist('trusted', 'groups'):
   107             for group in self.configlist('trusted', 'groups'):
   109                 self.trusted_groups[group] = 1
   108                 self.trusted_groups[group] = 1
   110         for hook in self.readhooks:
   109         for hook in self.readhooks:
   111             hook(self)
   110             hook(self)
       
   111 
       
   112     def addreadhook(self, hook):
       
   113         self.readhooks.append(hook)
   112 
   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 
   116     def config(self, section, name, default=None):
   118     def config(self, section, name, default=None):