mercurial/hook.py
changeset 7787 b8d750daadde
parent 7644 182b7114d35a
child 7916 f779e1996e23
equal deleted inserted replaced
7786:92455c1d6f83 7787:b8d750daadde
    68         ui.warn(_('warning: %s hook failed\n') % hname)
    68         ui.warn(_('warning: %s hook failed\n') % hname)
    69     return r
    69     return r
    70 
    70 
    71 def _exthook(ui, repo, name, cmd, args, throw):
    71 def _exthook(ui, repo, name, cmd, args, throw):
    72     ui.note(_("running hook %s: %s\n") % (name, cmd))
    72     ui.note(_("running hook %s: %s\n") % (name, cmd))
    73     env = dict([('HG_' + k.upper(), v) for k, v in args.iteritems()])
    73 
       
    74     env = {}
       
    75     for k, v in args.iteritems():
       
    76         if callable(v):
       
    77             v = v()
       
    78         env['HG_' + k.upper()] = v
       
    79 
    74     if repo:
    80     if repo:
    75         cwd = repo.root
    81         cwd = repo.root
    76     else:
    82     else:
    77         cwd = os.getcwd()
    83         cwd = os.getcwd()
    78     r = util.system(cmd, environ=env, cwd=cwd)
    84     r = util.system(cmd, environ=env, cwd=cwd)