summaryrefslogtreecommitdiff
path: root/Annex
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-06-01 13:52:23 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-06-01 13:52:23 -0400
commit39c13f91004b41166b786785083e78b34df0c48f (patch)
treebf5ea0acf27c9075a63d3b23b970c3ea44ecee64 /Annex
parent3a9ca30fa8740a57ea477243498339f9738102d6 (diff)
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.
Diffstat (limited to 'Annex')
-rw-r--r--Annex/AutoMerge.hs7
-rw-r--r--Annex/Branch.hs5
-rw-r--r--Annex/Quvi.hs4
-rw-r--r--Annex/Ssh.hs7
4 files changed, 15 insertions, 8 deletions
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