From 39c13f91004b41166b786785083e78b34df0c48f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 1 Jun 2015 13:52:23 -0400 Subject: remove Params constructor from Utility.SafeCommand This removes a bit of complexity, and should make things faster (avoids tokenizing Params string), and probably involve less garbage collection. In a few places, it was useful to use Params to avoid needing a list, but that is easily avoided. Problems noticed while doing this conversion: * Some uses of Params "oneword" which was entirely unnecessary overhead. * A few places that built up a list of parameters with ++ and then used Params to split it! Test suite passes. --- Annex/AutoMerge.hs | 7 +++++-- Annex/Branch.hs | 5 ++++- Annex/Quvi.hs | 4 ++-- Annex/Ssh.hs | 7 ++++--- 4 files changed, 15 insertions(+), 8 deletions(-) (limited to 'Annex') diff --git a/Annex/AutoMerge.hs b/Annex/AutoMerge.hs index 5ffa7b073..825dde443 100644 --- a/Annex/AutoMerge.hs +++ b/Annex/AutoMerge.hs @@ -89,7 +89,9 @@ resolveMerge us them = do unlessM isDirect $ do (deleted, cleanup2) <- inRepo (LsFiles.deleted [top]) unless (null deleted) $ - Annex.Queue.addCommand "rm" [Params "--quiet -f --"] deleted + Annex.Queue.addCommand "rm" + [Param "--quiet", Param "-f", Param "--"] + deleted void $ liftIO cleanup2 when merged $ do @@ -173,7 +175,8 @@ resolveMerge' (Just us) them u = do resolveby a = do {- Remove conflicted file from index so merge can be resolved. -} - Annex.Queue.addCommand "rm" [Params "--quiet -f --cached --"] [file] + Annex.Queue.addCommand "rm" + [Param "--quiet", Param "-f", Param "--cached", Param "--"] [file] void a return (Just file) diff --git a/Annex/Branch.hs b/Annex/Branch.hs index 4bd94bddb..1a57e2342 100644 --- a/Annex/Branch.hs +++ b/Annex/Branch.hs @@ -315,7 +315,10 @@ files = do - and without updating the branch. -} branchFiles :: Annex [FilePath] branchFiles = withIndex $ inRepo $ Git.Command.pipeNullSplitZombie - [ Params "ls-tree --name-only -r -z" + [ Param "ls-tree" + , Param "--name-only" + , Param "-r" + , Param "-z" , Param $ fromRef fullname ] diff --git a/Annex/Quvi.hs b/Annex/Quvi.hs index 8d4591b48..0355ecd9e 100644 --- a/Annex/Quvi.hs +++ b/Annex/Quvi.hs @@ -14,11 +14,11 @@ import qualified Annex import Utility.Quvi import Utility.Url -withQuviOptions :: forall a. Query a -> [QuviParam] -> URLString -> Annex a +withQuviOptions :: forall a. Query a -> [QuviParams] -> URLString -> Annex a withQuviOptions a ps url = do v <- quviVersion opts <- map Param . annexQuviOptions <$> Annex.getGitConfig - liftIO $ a v (map (\mkp -> mkp v) ps++opts) url + liftIO $ a v (concatMap (\mkp -> mkp v) ps ++ opts) url quviSupported :: URLString -> Annex Bool quviSupported u = liftIO . flip supported u =<< quviVersion diff --git a/Annex/Ssh.hs b/Annex/Ssh.hs index 52959ef7b..4d54d728e 100644 --- a/Annex/Ssh.hs +++ b/Annex/Ssh.hs @@ -92,7 +92,8 @@ bestSocketPath abssocketfile = do sshConnectionCachingParams :: FilePath -> [CommandParam] sshConnectionCachingParams socketfile = [ Param "-S", Param socketfile - , Params "-o ControlMaster=auto -o ControlPersist=yes" + , Param "-o", Param "ControlMaster=auto" + , Param "-o", Param "ControlPersist=yes" ] {- ssh connection caching creates sockets, so will not work on a @@ -180,8 +181,8 @@ forceStopSsh socketfile = do void $ liftIO $ catchMaybeIO $ withQuietOutput createProcessSuccess $ (proc "ssh" $ toCommand $ - [ Params "-O stop" - ] ++ params ++ [Param "localhost"]) + [ Param "-O", Param "stop" ] ++ + params ++ [Param "localhost"]) { cwd = Just dir } liftIO $ nukeFile socketfile -- cgit v1.2.3