diff options
author | Joey Hess <joey@kitenet.net> | 2012-11-09 12:51:54 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-11-09 13:35:23 -0400 |
commit | d8331995cd692d6b81895114e23dc7b1939fc6d1 (patch) | |
tree | 63a52a18b7a6b809c1262740cea491e347f0110f /Command/XMPPGit.hs | |
parent | 164d9439a1f87c69aaa61f0314428ddfb68ee886 (diff) |
use xmpp::user@host for xmpp remotes
Inject the required git-remote-xmpp into PATH when running xmpp git push.
Rest of the time it will not be in PATH, and git won't be able to talk to
xmpp remotes.
Diffstat (limited to 'Command/XMPPGit.hs')
-rw-r--r-- | Command/XMPPGit.hs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Command/XMPPGit.hs b/Command/XMPPGit.hs index ca7058c12..9df4f5d66 100644 --- a/Command/XMPPGit.hs +++ b/Command/XMPPGit.hs @@ -20,5 +20,22 @@ seek = [withWords start] start :: [String] -> CommandStart start _ = do + liftIO gitRemoteHelper liftIO xmppGitRelay stop + +{- A basic implementation of the git-remote-helpers protocol. -} +gitRemoteHelper :: IO () +gitRemoteHelper = do + expect "capabilities" + respond ["connect"] + expect "connect git-receive-pack" + respond [] + where + expect s = do + cmd <- getLine + unless (cmd == s) $ + error $ "git-remote-helpers protocol error: expected: " ++ s ++ ", but got: " ++ cmd + respond l = do + mapM_ putStrLn l + putStrLn "" |