From 7f7ae7a3b1cdfbc61879189dfe04a637690015aa Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 22 Nov 2011 14:06:31 -0400 Subject: find: Support --print0 It would be nice if command-specific options were supported. The first difficulty is that which command is being called is not known until after getopt; but that could be worked around by finding the first non-dashed parameter. Storing the settings without putting them in the annex monad is the next difficulty; it could perhaps be handled by making the seek stage pass applicable settings into the start stage (and from there on to perform as needed). But that still leaves a problem, what data type to use to represent the options between getopt and seek? --- Command/Find.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Command') diff --git a/Command/Find.hs b/Command/Find.hs index c816ff071..47058fa25 100644 --- a/Command/Find.hs +++ b/Command/Find.hs @@ -11,6 +11,7 @@ import Common.Annex import Command import Annex.Content import Limit +import qualified Annex def :: [Command] def = [command "find" paramPaths seek "lists available files"] @@ -22,6 +23,9 @@ start :: FilePath -> (Key, Backend Annex) -> CommandStart start file (key, _) = do -- only files inAnnex are shown, unless the user has requested -- others via a limit - whenM (liftM2 (||) (inAnnex key) limited) $ - liftIO $ putStrLn file + whenM (liftM2 (||) (inAnnex key) limited) $ do + print0 <- Annex.getState Annex.print0 + if print0 + then liftIO $ putStr (file ++ "\0") + else liftIO $ putStrLn file stop -- cgit v1.2.3