summaryrefslogtreecommitdiff
path: root/Annex
diff options
context:
space:
mode:
Diffstat (limited to 'Annex')
-rw-r--r--Annex/Ssh.hs21
1 files changed, 12 insertions, 9 deletions
diff --git a/Annex/Ssh.hs b/Annex/Ssh.hs
index 627c04532..52959ef7b 100644
--- a/Annex/Ssh.hs
+++ b/Annex/Ssh.hs
@@ -271,20 +271,23 @@ sshOptionsTo remote gc g
Just host -> do
(msockfile, _) <- sshCachingInfo (host, Git.Url.port remote)
case msockfile of
- Nothing -> return g
+ Nothing -> use []
Just sockfile -> do
- command <- liftIO programPath
prepSocket sockfile
- let val = toSshOptionsEnv $ concat
- [ sshConnectionCachingParams sockfile
- , map Param (remoteAnnexSshOptions gc)
- ]
- liftIO $ do
- g' <- addGitEnv g sshOptionsEnv val
- addGitEnv g' "GIT_SSH" command
+ use (sshConnectionCachingParams sockfile)
where
uncached = return g
+ use opts = do
+ let val = toSshOptionsEnv $ concat
+ [ opts
+ , map Param (remoteAnnexSshOptions gc)
+ ]
+ command <- liftIO programPath
+ liftIO $ do
+ g' <- addGitEnv g sshOptionsEnv val
+ addGitEnv g' "GIT_SSH" command
+
runSshOptions :: [String] -> String -> IO ()
runSshOptions args s = do
let args' = toCommand (fromSshOptionsEnv s) ++ args