diff options
Diffstat (limited to 'Assistant/XMPP/Git.hs')
-rw-r--r-- | Assistant/XMPP/Git.hs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Assistant/XMPP/Git.hs b/Assistant/XMPP/Git.hs index ea14e09cc..37535d01c 100644 --- a/Assistant/XMPP/Git.hs +++ b/Assistant/XMPP/Git.hs @@ -169,4 +169,18 @@ xmppGitRelay = do {- Relays git receive-pack to and from XMPP, and propigates its exit status. -} xmppReceivePack :: Assistant Bool -xmppReceivePack = error "TODO" +xmppReceivePack = do + feeder <- asIO1 toxmpp + reader <- asIO1 fromxmpp + ok <- liftIO $ do + (Just inh, Just outh, _, pid) <- createProcess $ p + { std_in = CreatePipe + , std_out = CreatePipe + , std_err = Inherit + } + + liftIO $ mapM_ killThread [t1, t2] + where + p = proc "git" params + toxmpp = + fromxmpp = |