diff --git a/CmdLine.hs b/CmdLine.hs index d9a4103696..8cf4d0544d 100644 --- a/CmdLine.hs +++ b/CmdLine.hs @@ -30,6 +30,7 @@ import Annex.Content import Annex.Ssh import Annex.Environment import Command +import Types.Messages type Params = [String] type Flags = [Annex ()] @@ -47,6 +48,8 @@ dispatch fuzzyok allargs allcmds commonoptions fields header getgitrepo = do checkEnvironment checkfuzzy forM_ fields $ uncurry Annex.setField + when (cmdnomessages cmd) $ + Annex.setOutput QuietOutput sequence_ flags whenM (annexDebug <$> Annex.getGitConfig) $ liftIO enableDebugOutput diff --git a/Command.hs b/Command.hs index 8083e0d7c5..fec733f724 100644 --- a/Command.hs +++ b/Command.hs @@ -9,6 +9,7 @@ module Command ( command, noRepo, noCommit, + noMessages, withOptions, next, stop, @@ -40,13 +41,18 @@ import Annex.CheckAttr {- Generates a normal command -} command :: String -> String -> [CommandSeek] -> CommandSection -> String -> Command -command = Command [] Nothing commonChecks False +command = Command [] Nothing commonChecks False False {- Indicates that a command doesn't need to commit any changes to - the git-annex branch. -} noCommit :: Command -> Command noCommit c = c { cmdnocommit = True } +{- Indicates that a command should not output anything other than what + - it directly sends to stdout. (--json can override this). -} +noMessages :: Command -> Command +noMessages c = c { cmdnomessages = True } + {- Adds a fallback action to a command, that will be run if it's used - outside a git repository. -} noRepo :: IO () -> Command -> Command diff --git a/Command/Find.hs b/Command/Find.hs index a326b26340..4b8c7ce0e9 100644 --- a/Command/Find.hs +++ b/Command/Find.hs @@ -20,7 +20,7 @@ import Types.Key import qualified Option def :: [Command] -def = [noCommit $ withOptions [formatOption, print0Option] $ +def = [noCommit $ noMessages $ withOptions [formatOption, print0Option] $ command "find" paramPaths seek SectionQuery "lists available files"] formatOption :: Option diff --git a/Types/Command.hs b/Types/Command.hs index 4b92ca1738..3187efd171 100644 --- a/Types/Command.hs +++ b/Types/Command.hs @@ -39,6 +39,7 @@ data Command = Command , cmdnorepo :: Maybe (IO ()) -- an action to run when not in a repo , cmdcheck :: [CommandCheck] -- check stage , cmdnocommit :: Bool -- don't commit journalled state changes + , cmdnomessages :: Bool -- don't output normal messages , cmdname :: String , cmdparamdesc :: String -- description of params for usage , cmdseek :: [CommandSeek] -- seek stage diff --git a/debian/changelog b/debian/changelog index 499f09a104..ec8a748e63 100644 --- a/debian/changelog +++ b/debian/changelog @@ -31,6 +31,7 @@ git-annex (4.20130724) UNRELEASED; urgency=low * Improve test suite on Windows; now tests git annex sync. * Fix a few bugs involving filenames that are at or near the filesystem's maximum filename length limit. + * find: Avoid polluting stdout with progress messages. Closes: #718186 -- Joey Hess Tue, 23 Jul 2013 12:39:48 -0400