summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CmdLine.hs3
-rw-r--r--Command.hs8
-rw-r--r--Command/Find.hs2
-rw-r--r--Types/Command.hs1
-rw-r--r--debian/changelog1
5 files changed, 13 insertions, 2 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index d9a410369..8cf4d0544 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 8083e0d7c..fec733f72 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 a326b2634..4b8c7ce0e 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 4b92ca173..3187efd17 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 499f09a10..ec8a748e6 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 <joeyh@debian.org> Tue, 23 Jul 2013 12:39:48 -0400