whereis --batch
This commit is contained in:
parent
d44177c774
commit
9b9b5a30e1
6 changed files with 33 additions and 13 deletions
|
@ -65,3 +65,8 @@ batchInput parser a = do
|
|||
batchCommandAction :: CommandStart -> Annex ()
|
||||
batchCommandAction a = maybe (batchBadInput Batch) (const noop)
|
||||
=<< callCommandAction' a
|
||||
|
||||
-- Reads lines of batch input and passes the filepaths to a CommandStart
|
||||
-- to handle them.
|
||||
batchFiles :: (FilePath -> CommandStart) -> Annex ()
|
||||
batchFiles a = batchInput Right $ batchCommandAction . a
|
||||
|
|
|
@ -55,8 +55,7 @@ seek o = allowConcurrentOutput $ do
|
|||
, startSmall file
|
||||
)
|
||||
case batchOption o of
|
||||
Batch -> batchInput Right $
|
||||
batchCommandAction . gofile
|
||||
Batch -> batchFiles gofile
|
||||
NoBatch -> do
|
||||
let go a = a gofile (addThese o)
|
||||
go (withFilesNotInGit (not $ includeDotFiles o))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{- git-annex command
|
||||
-
|
||||
- Copyright 2010-2014 Joey Hess <id@joeyh.name>
|
||||
- Copyright 2010-2016 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
@ -14,6 +14,7 @@ import Logs.Trust
|
|||
import Logs.Web
|
||||
import Remote.Web (getWebUrls)
|
||||
import Annex.UUID
|
||||
import CmdLine.Batch
|
||||
|
||||
import qualified Data.Map as M
|
||||
|
||||
|
@ -26,20 +27,26 @@ cmd = noCommit $ withGlobalOptions (jsonOption : annexedMatchingOptions) $
|
|||
data WhereisOptions = WhereisOptions
|
||||
{ whereisFiles :: CmdParams
|
||||
, keyOptions :: Maybe KeyOptions
|
||||
, batchOption :: BatchMode
|
||||
}
|
||||
|
||||
optParser :: CmdParamsDesc -> Parser WhereisOptions
|
||||
optParser desc = WhereisOptions
|
||||
<$> cmdParams desc
|
||||
<*> optional (parseKeyOptions False)
|
||||
<*> parseBatchOption
|
||||
|
||||
seek :: WhereisOptions -> CommandSeek
|
||||
seek o = do
|
||||
m <- remoteMap id
|
||||
withKeyOptions (keyOptions o) False
|
||||
(startKeys m)
|
||||
(withFilesInGit $ whenAnnexed $ start m)
|
||||
(whereisFiles o)
|
||||
let go = whenAnnexed $ start m
|
||||
case batchOption o of
|
||||
Batch -> batchFiles go
|
||||
NoBatch ->
|
||||
withKeyOptions (keyOptions o) False
|
||||
(startKeys m)
|
||||
(withFilesInGit go)
|
||||
(whereisFiles o)
|
||||
|
||||
start :: M.Map UUID Remote -> FilePath -> Key -> CommandStart
|
||||
start remotemap file key = start' remotemap key (Just file)
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -2,7 +2,7 @@ git-annex (6.20160115) UNRELEASED; urgency=medium
|
|||
|
||||
* whereis --json: Urls are now listed inside the remote that claims them,
|
||||
rather than all together at the end.
|
||||
* info, add: Support --batch mode.
|
||||
* info, add, whereis: Support --batch mode.
|
||||
* Force output to be line-buffered, even when it's not connected to the
|
||||
terminal. This is particuarly important for commands with --batch
|
||||
output, which was not always being flushed at an appropriate time.
|
||||
|
|
|
@ -22,11 +22,6 @@ For example:
|
|||
|
||||
# OPTIONS
|
||||
|
||||
* `--json`
|
||||
|
||||
Enable JSON output. This is intended to be parsed by programs that use
|
||||
git-annex. Each line of output is a JSON object.
|
||||
|
||||
* file matching options
|
||||
|
||||
The [[git-annex-matching-options]](1)
|
||||
|
@ -44,6 +39,18 @@ For example:
|
|||
|
||||
Show whereis information for files found by last run of git-annex unused.
|
||||
|
||||
* `--json`
|
||||
|
||||
Enable JSON output. This is intended to be parsed by programs that use
|
||||
git-annex. Each line of output is a JSON object.
|
||||
|
||||
* `--batch`
|
||||
|
||||
Enables batch mode, in which a file is read in a line from stdin,
|
||||
its information displayed, and repeat.
|
||||
|
||||
Note that if the file is not an annexed file, an empty line will be
|
||||
output instead.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
subject. IMHO yet another useful command to be batched
|
||||
|
||||
> [[done]] --[[Joey]]
|
||||
|
|
Loading…
Reference in a new issue