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.
This commit is contained in:
Joey Hess 2015-06-01 13:52:23 -04:00
parent 8f4860df13
commit eb33569f9d
26 changed files with 221 additions and 118 deletions

View file

@ -148,7 +148,11 @@ getLog key os = do
config <- Annex.getGitConfig
let logfile = p </> locationLogFile config key
inRepo $ pipeNullSplitZombie $
[ Params "log -z --pretty=format:%ct --raw --abbrev=40"
[ Param "log"
, Param "-z"
, Param "--pretty=format:%ct"
, Param "-raw"
, Param "--abbrev=40"
, Param "--remove-empty"
] ++ os ++
[ Param $ Git.fromRef Annex.Branch.fullname

View file

@ -72,7 +72,14 @@ start file key = stopUnless (inAnnex key) $ do
performIndirect :: FilePath -> Key -> CommandPerform
performIndirect file key = do
liftIO $ removeFile file
inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file]
inRepo $ Git.Command.run
[ Param "rm"
, Param "--cached"
, Param "--force"
, Param "--quiet"
, Param "--"
, File file
]
next $ cleanupIndirect file key
cleanupIndirect :: FilePath -> Key -> CommandCleanup
@ -108,7 +115,14 @@ cleanupIndirect file key = do
performDirect :: FilePath -> Key -> CommandPerform
performDirect file key = do
-- --force is needed when the file is not committed
inRepo $ Git.Command.run [Params "rm --cached --force --quiet --", File file]
inRepo $ Git.Command.run
[ Param "rm"
, Param "--cached"
, Param "--force"
, Param "--quiet"
, Param "--"
, File file
]
next $ cleanupDirect file key
{- The direct mode file is not touched during unannex, so the content

View file

@ -37,7 +37,7 @@ check = do
where
current_branch = Git.Ref . Prelude.head . lines <$> revhead
revhead = inRepo $ Git.Command.pipeReadStrict
[Params "rev-parse --abbrev-ref HEAD"]
[Param "rev-parse", Param "--abbrev-ref", Param "HEAD"]
seek :: CommandSeek
seek ps = do