##// END OF EJS Templates
hook.py: fix redirections introduced by 323b9c55b328...
Alexis S. L. Carvalho -
r6266:9f76df0e default
parent child Browse files
Show More
@@ -85,6 +85,7 def _exthook(ui, repo, name, cmd, args,
85
85
86 _redirect = False
86 _redirect = False
87 def redirect(state):
87 def redirect(state):
88 global _redirect
88 _redirect = state
89 _redirect = state
89
90
90 def hook(ui, repo, name, throw=False, **args):
91 def hook(ui, repo, name, throw=False, **args):
@@ -92,8 +93,8 def hook(ui, repo, name, throw=False, **
92
93
93 if _redirect:
94 if _redirect:
94 # temporarily redirect stdout to stderr
95 # temporarily redirect stdout to stderr
95 oldstdout = os.dup(sys.stdout.fileno())
96 oldstdout = os.dup(sys.__stdout__.fileno())
96 os.dup2(sys.stderr.fileno(), sys.stdout.fileno())
97 os.dup2(sys.__stderr__.fileno(), sys.__stdout__.fileno())
97
98
98 hooks = [(hname, cmd) for hname, cmd in ui.configitems("hooks")
99 hooks = [(hname, cmd) for hname, cmd in ui.configitems("hooks")
99 if hname.split(".", 1)[0] == name and cmd]
100 if hname.split(".", 1)[0] == name and cmd]
@@ -106,8 +107,9 def hook(ui, repo, name, throw=False, **
106 args, throw) or r
107 args, throw) or r
107 else:
108 else:
108 r = _exthook(ui, repo, hname, cmd, args, throw) or r
109 r = _exthook(ui, repo, hname, cmd, args, throw) or r
109 return r
110
110
111 if _redirect:
111 if _redirect:
112 os.dup2(oldstdout, sys.stdout.fileno())
112 os.dup2(oldstdout, sys.__stdout__.fileno())
113 os.close(oldstdout)
113 os.close(oldstdout)
114
115 return r
@@ -29,7 +29,7 EOF
29
29
30 cat <<EOF > badhook
30 cat <<EOF > badhook
31 import sys
31 import sys
32 sys.stdout.write("KABOOM")
32 sys.stdout.write("KABOOM\n")
33 EOF
33 EOF
34
34
35 echo "# creating 'remote'"
35 echo "# creating 'remote'"
@@ -78,8 +78,7 remote: adding changesets
78 remote: adding manifests
78 remote: adding manifests
79 remote: adding file changes
79 remote: adding file changes
80 remote: added 1 changesets with 1 changes to 1 files
80 remote: added 1 changesets with 1 changes to 1 files
81 abort: unexpected response:
81 remote: KABOOM
82 'KABOOM1\n'
83 changeset: 3:ac7448082955
82 changeset: 3:ac7448082955
84 tag: tip
83 tag: tip
85 parent: 1:572896fe480d
84 parent: 1:572896fe480d
General Comments 0
You need to be logged in to leave comments. Login now