comparison mercurial/hook.py @ 5869:2c565b9598b8

hooks: fix pre- and post- hooks specified in .hg/hgrc We were looking up hooks in the wrong ui object. Also, we weren't handling hooks to commands without a repo.
author Matt Mackall <mpm@selenic.com>
date Fri, 18 Jan 2008 09:03:17 -0600
parents 323b9c55b328
children 9f76df0edb7d
comparison
equal deleted inserted replaced
5868:838fa52abcc1 5869:2c565b9598b8
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 env = dict([('HG_' + k.upper(), v) for k, v in args.iteritems()])
74 r = util.system(cmd, environ=env, cwd=repo.root) 74 if repo:
75 cwd = repo.root
76 else:
77 cwd = os.getcwd()
78 r = util.system(cmd, environ=env, cwd=cwd)
75 if r: 79 if r:
76 desc, r = util.explain_exit(r) 80 desc, r = util.explain_exit(r)
77 if throw: 81 if throw:
78 raise util.Abort(_('%s hook %s') % (name, desc)) 82 raise util.Abort(_('%s hook %s') % (name, desc))
79 ui.warn(_('warning: %s hook %s\n') % (name, desc)) 83 ui.warn(_('warning: %s hook %s\n') % (name, desc))