fix exit code propigation
This commit is contained in:
parent
ee0958e044
commit
341d09adc2
1 changed files with 3 additions and 8 deletions
|
@ -163,19 +163,14 @@ relayHandle var = do
|
|||
- we're talking to git-push on stdout
|
||||
- git-receive-pack is talking to us on relayIn (via XMPP)
|
||||
- we're talking to git-receive-pack on relayOut (via XMPP)
|
||||
- git-receive-pack's exit code will be passed to us on relayControl
|
||||
-}
|
||||
xmppGitRelay :: IO ()
|
||||
xmppGitRelay = do
|
||||
flip relay stdout =<< relayHandle relayIn
|
||||
relay stdin =<< relayHandle relayOut
|
||||
|
||||
controlh <- relayHandle relayControl
|
||||
s <- hGetLine controlh
|
||||
exitWith $ case readish s of
|
||||
Just n
|
||||
| n == 0 -> ExitSuccess
|
||||
| otherwise -> ExitFailure n
|
||||
Nothing -> ExitFailure 1
|
||||
code <- hGetLine =<< relayHandle relayControl
|
||||
exitWith $ fromMaybe (ExitFailure 1) $ readish code
|
||||
where
|
||||
{- Is it possible to set up pipes and not need to copy the data
|
||||
- ourselves? See splice(2) -}
|
||||
|
|
Loading…
Reference in a new issue