metadata: Fix reversion introduced in 5.20150727 that caused display of metadata to not work.

This commit is contained in:
Joey Hess 2015-08-11 13:19:01 -04:00
parent d54c9c46da
commit 0f66f766b0
3 changed files with 22 additions and 18 deletions

View file

@ -33,11 +33,11 @@ withFilesInGit :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek
withFilesInGit a params = seekActions $ prepFiltered a $
seekHelper LsFiles.inRepo params
withFilesInGitNonRecursive :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek
withFilesInGitNonRecursive a params = ifM (Annex.getState Annex.force)
withFilesInGitNonRecursive :: String -> (FilePath -> CommandStart) -> CmdParams -> CommandSeek
withFilesInGitNonRecursive needforce a params = ifM (Annex.getState Annex.force)
( withFilesInGit a params
, if null params
then needforce
then error needforce
else seekActions $ prepFiltered a (getfiles [] params)
)
where
@ -51,8 +51,7 @@ withFilesInGitNonRecursive a params = ifM (Annex.getState Annex.force)
[] -> do
void $ liftIO $ cleanup
getfiles c ps
_ -> needforce
needforce = error "Not recursively setting metadata. Use --force to do that."
_ -> error needforce
withFilesNotInGit :: Bool -> (FilePath -> CommandStart) -> CmdParams -> CommandSeek
withFilesNotInGit skipdotfiles a params

View file

@ -27,12 +27,12 @@ data MetaDataOptions = MetaDataOptions
, keyOptions :: Maybe KeyOptions
}
data GetSet = Get MetaField | Set [ModMeta]
data GetSet = Get MetaField | GetAll | Set [ModMeta]
optParser :: CmdParamsDesc -> Parser MetaDataOptions
optParser desc = MetaDataOptions
<$> cmdParams desc
<*> ((Get <$> getopt) <|> (Set <$> many modopts))
<*> ((Get <$> getopt) <|> (Set <$> some modopts) <|> pure GetAll)
<*> optional (parseKeyOptions False)
where
getopt = option (eitherReader mkMetaField)
@ -57,7 +57,9 @@ seek o = do
now <- liftIO getPOSIXTime
let seeker = case getSet o of
Get _ -> withFilesInGit
GetAll -> withFilesInGit
Set _ -> withFilesInGitNonRecursive
"Not recursively setting metadata. Use --force to do that."
withKeyOptions (keyOptions o) False
(startKeys now o)
(seeker $ whenAnnexed $ start now o)
@ -71,22 +73,23 @@ startKeys = start' Nothing
start' :: AssociatedFile -> POSIXTime -> MetaDataOptions -> Key -> CommandStart
start' afile now o k = case getSet o of
Set ms -> do
showStart' "metadata" k afile
next $ perform now ms k
Get f -> do
l <- S.toList . currentMetaDataValues f <$> getCurrentMetaData k
liftIO $ forM_ l $
putStrLn . fromMetaValue
stop
_ -> do
showStart' "metadata" k afile
next $ perform now o k
perform :: POSIXTime -> [ModMeta] -> Key -> CommandPerform
perform _ [] k = next $ cleanup k
perform now ms k = do
perform :: POSIXTime -> MetaDataOptions -> Key -> CommandPerform
perform now o k = case getSet o of
Set ms -> do
oldm <- getCurrentMetaData k
let m = combineMetaData $ map (modMeta oldm) ms
addMetaData' k m now
next $ cleanup k
_ -> next $ cleanup k
cleanup :: Key -> CommandCleanup
cleanup k = do

2
debian/changelog vendored
View file

@ -34,6 +34,8 @@ git-annex (5.20150732) UNRELEASED; urgency=medium
built using the cryptonite library.
* Improve Setup.hs file so that cabal copy --destdir works.
Thanks, Magnus Therning.
* metadata: Fix reversion introduced in 5.20150727 that caused display
of metadata to not work.
-- Joey Hess <id@joeyh.name> Fri, 31 Jul 2015 12:31:39 -0400