From a4edc404f0d91db54e13dace7be265a2611de5d6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 22 Nov 2014 16:20:02 -0400 Subject: propellor spin --- src/Propellor/CmdLine.hs | 8 +++----- src/Propellor/Server.hs | 4 ++-- src/Propellor/Ssh.hs | 13 ++++++------- 3 files changed, 11 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/Propellor/CmdLine.hs b/src/Propellor/CmdLine.hs index 7002a3f6..11193ab3 100644 --- a/src/Propellor/CmdLine.hs +++ b/src/Propellor/CmdLine.hs @@ -166,11 +166,9 @@ spin target relay hst = do void $ actionMessage "Push to central git repository" $ boolSystem "git" [Param "push"] - cacheparams <- if False - then pure [] - else if viarelay - then pure ["-A"] - else toCommand <$> sshCachingParams hn viarelay + cacheparams <- if viarelay + then pure ["-A"] + else toCommand <$> sshCachingParams hn when viarelay $ void $ boolSystem "ssh-add" [] diff --git a/src/Propellor/Server.hs b/src/Propellor/Server.hs index 38325003..be2eb1d3 100644 --- a/src/Propellor/Server.hs +++ b/src/Propellor/Server.hs @@ -131,7 +131,7 @@ sendGitUpdate hn fromh toh = sendGitClone :: HostName -> IO () sendGitClone hn = void $ actionMessage ("Clone git repository to " ++ hn) $ do branch <- getCurrentBranch - cacheparams <- sshCachingParams hn False + cacheparams <- sshCachingParams hn withTmpFile "propellor.git" $ \tmp _ -> allM id [ boolSystem "git" [Param "bundle", Param "create", File tmp, Param "HEAD"] , boolSystem "scp" $ cacheparams ++ [File tmp, Param ("root@"++hn++":"++remotebundle)] @@ -156,7 +156,7 @@ sendPrecompiled hn = void $ actionMessage ("Uploading locally compiled propellor withTmpDir "propellor" go where go tmpdir = do - cacheparams <- sshCachingParams hn False + cacheparams <- sshCachingParams hn let shimdir = takeFileName localdir createDirectoryIfMissing True (tmpdir shimdir) changeWorkingDirectory (tmpdir shimdir) diff --git a/src/Propellor/Ssh.hs b/src/Propellor/Ssh.hs index ecdb54d2..97c3eb6d 100644 --- a/src/Propellor/Ssh.hs +++ b/src/Propellor/Ssh.hs @@ -14,17 +14,16 @@ import Data.Time.Clock.POSIX -- minutes, and if so stop that ssh process, in order to not try to -- use an old stale connection. (atime would be nicer, but there's -- a good chance a laptop uses noatime) -sshCachingParams :: HostName -> Bool -> IO [CommandParam] -sshCachingParams hn viarelay = do +sshCachingParams :: HostName -> IO [CommandParam] +sshCachingParams hn = do home <- myHomeDir let cachedir = home ".ssh" "propellor" createDirectoryIfMissing False cachedir let socketfile = cachedir hn ++ ".sock" - let ps = catMaybes - [ if viarelay then Just (Param "-A") else Nothing - , Just $ Param "-o" - , Just $ Param ("ControlPath=" ++ socketfile) - , Just $ Params "-o ControlMaster=auto -o ControlPersist=yes" + let ps = + [ Param "-o" + , Param ("ControlPath=" ++ socketfile) + , Params "-o ControlMaster=auto -o ControlPersist=yes" ] maybe noop (expireold ps socketfile) -- cgit v1.2.3