git-annex fromkey now takes multiple pairs of keys and filenames
It also still reads from stdin when none are specified.
This commit is contained in:
parent
e0be5b354a
commit
24317be646
2 changed files with 14 additions and 9 deletions
|
@ -20,16 +20,18 @@ import Network.URI
|
|||
cmd :: Command
|
||||
cmd = notDirect $ notBareRepo $
|
||||
command "fromkey" SectionPlumbing "adds a file using a specific key"
|
||||
(paramPair paramKey paramPath)
|
||||
(paramRepeating (paramPair paramKey paramPath))
|
||||
(withParams seek)
|
||||
|
||||
seek :: CmdParams -> CommandSeek
|
||||
seek [] = do
|
||||
withNothing startMass []
|
||||
seek ps = do
|
||||
force <- Annex.getState Annex.force
|
||||
withWords (start force) ps
|
||||
withPairs (start force) ps
|
||||
|
||||
start :: Bool -> [String] -> CommandStart
|
||||
start force (keyname:file:[]) = do
|
||||
start :: Bool -> (String, FilePath) -> CommandStart
|
||||
start force (keyname, file) = do
|
||||
let key = mkKey keyname
|
||||
unless force $ do
|
||||
inbackend <- inAnnex key
|
||||
|
@ -37,10 +39,11 @@ start force (keyname:file:[]) = do
|
|||
"key ("++ keyname ++") is not present in backend (use --force to override this sanity check)"
|
||||
showStart "fromkey" file
|
||||
next $ perform key file
|
||||
start _ [] = do
|
||||
|
||||
startMass :: CommandStart
|
||||
startMass = do
|
||||
showStart "fromkey" "stdin"
|
||||
next massAdd
|
||||
start _ _ = giveup "specify a key and a dest file"
|
||||
|
||||
massAdd :: CommandPerform
|
||||
massAdd = go True =<< map (separate (== ' ')) . lines <$> liftIO getContents
|
||||
|
|
|
@ -4,14 +4,16 @@ git-annex fromkey - adds a file using a specific key
|
|||
|
||||
# SYNOPSIS
|
||||
|
||||
git annex fromkey `[key file]`
|
||||
git annex fromkey `[key file ...]`
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
This plumbing-level command can be used to manually set up a file
|
||||
in the git repository to link to a specified key.
|
||||
|
||||
If the key and file are not specified on the command line, they are
|
||||
Multiple pairs of file and key can be given in a single command line.
|
||||
|
||||
If no key and file pair are specified on the command line, they are
|
||||
instead read from stdin. Any number of lines can be provided in this
|
||||
mode, each containing a key and filename, separated by a single space.
|
||||
|
||||
|
|
Loading…
Reference in a new issue