dropkey: Add --batch.
This commit is contained in:
parent
8a54643618
commit
78fa865721
3 changed files with 37 additions and 10 deletions
|
@ -1,6 +1,6 @@
|
|||
{- git-annex command
|
||||
-
|
||||
- Copyright 2010 Joey Hess <id@joeyh.name>
|
||||
- Copyright 2010,2016 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
@ -13,26 +13,45 @@ import Logs.Location
|
|||
import Annex.Content
|
||||
|
||||
cmd :: Command
|
||||
cmd = noCommit $
|
||||
cmd = noCommit $
|
||||
command "dropkey" SectionPlumbing
|
||||
"drops annexed content for specified keys"
|
||||
(paramRepeating paramKey)
|
||||
(withParams seek)
|
||||
(seek <$$> optParser)
|
||||
|
||||
seek :: CmdParams -> CommandSeek
|
||||
seek = withKeys start
|
||||
data DropKeyOptions = DropKeyOptions
|
||||
{ toDrop :: [String]
|
||||
, batchOption :: BatchMode
|
||||
}
|
||||
|
||||
start :: Key -> CommandStart
|
||||
start key = stopUnless (inAnnex key) $ do
|
||||
optParser :: CmdParamsDesc -> Parser DropKeyOptions
|
||||
optParser desc = DropKeyOptions
|
||||
<$> cmdParams desc
|
||||
<*> parseBatchOption
|
||||
|
||||
seek :: DropKeyOptions -> CommandSeek
|
||||
seek o = do
|
||||
unlessM (Annex.getState Annex.force) $
|
||||
error "dropkey can cause data loss; use --force if you're sure you want to do this"
|
||||
withKeys start (toDrop o)
|
||||
case batchOption o of
|
||||
Batch -> batchInput parsekey $ batchCommandAction . start
|
||||
NoBatch -> noop
|
||||
where
|
||||
parsekey = maybe (Left "bad key") Right . file2key
|
||||
|
||||
start :: Key -> CommandStart
|
||||
start key = do
|
||||
showStart' "dropkey" key Nothing
|
||||
next $ perform key
|
||||
|
||||
perform :: Key -> CommandPerform
|
||||
perform key = lockContentForRemoval key $ \contentlock -> do
|
||||
removeAnnex contentlock
|
||||
next $ cleanup key
|
||||
perform key = ifM (inAnnex key)
|
||||
( lockContentForRemoval key $ \contentlock -> do
|
||||
removeAnnex contentlock
|
||||
next $ cleanup key
|
||||
, next $ return True
|
||||
)
|
||||
|
||||
cleanup :: Key -> CommandCleanup
|
||||
cleanup key = do
|
||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -8,6 +8,7 @@ git-annex (6.20160230) UNRELEASED; urgency=medium
|
|||
Thanks, Klaus Ethgen.
|
||||
* Added dependencies on haskell mountpoints and disk-free-space
|
||||
libraries, removing FFI code from git-annex.
|
||||
* dropkey: Add --batch.
|
||||
|
||||
-- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 13:00:30 -0400
|
||||
|
||||
|
|
|
@ -17,6 +17,13 @@ to have a file in the git repository pointing at them.
|
|||
Warning: This command does not check that enough other copies of the content
|
||||
exist; using it can easily result in data loss.
|
||||
|
||||
# OPTIONS
|
||||
|
||||
* `--batch`
|
||||
|
||||
Enables batch mode, in which lines containing keys to drop are read from
|
||||
stdin.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
[[git-annex]](1)
|
||||
|
|
Loading…
Add table
Reference in a new issue