Support --metadata field<number, --metadata field>number etc to match ranges of numeric values.
Similarly (well, for free), support preferred content expressions like metadata=field<number and metadata=field>number
This commit is contained in:
parent
01f1de0c3c
commit
b946ca44c3
8 changed files with 67 additions and 30 deletions
11
Limit.hs
11
Limit.hs
|
@ -23,6 +23,7 @@ import Types.TrustLevel
|
|||
import Types.Group
|
||||
import Types.FileMatcher
|
||||
import Types.MetaData
|
||||
import Annex.MetaData
|
||||
import Logs.MetaData
|
||||
import Logs.Group
|
||||
import Logs.Unused
|
||||
|
@ -278,14 +279,12 @@ addMetaData :: String -> Annex ()
|
|||
addMetaData = addLimit . limitMetaData
|
||||
|
||||
limitMetaData :: MkLimit Annex
|
||||
limitMetaData s = case parseMetaData s of
|
||||
limitMetaData s = case parseMetaDataMatcher s of
|
||||
Left e -> Left e
|
||||
Right (f, v) ->
|
||||
let cglob = compileGlob (fromMetaValue v) CaseInsensative
|
||||
in Right $ const $ checkKey (check f cglob)
|
||||
Right (f, matching) -> Right $ const $ checkKey (check f matching)
|
||||
where
|
||||
check f cglob k = not . S.null
|
||||
. S.filter (matchGlob cglob . fromMetaValue)
|
||||
check f matching k = not . S.null
|
||||
. S.filter matching
|
||||
. metaDataValues f <$> getCurrentMetaData k
|
||||
|
||||
addTimeLimit :: String -> Annex ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue