caa97d1271
Note that this is a nearly entirely free feature. The data was already stored in the metadata log in an easily accessible way, and already was parsed to a time when parsing the log. The generation of the metadata fields may even be done lazily, although probably not entirely (the map has to be evaulated to when queried).
38 lines
850 B
Haskell
38 lines
850 B
Haskell
{- git-annex metadata, standard fields
|
|
-
|
|
- Copyright 2014 Joey Hess <joey@kitenet.net>
|
|
-
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
-}
|
|
|
|
module Annex.MetaData.StandardFields (
|
|
tagMetaField,
|
|
yearMetaField,
|
|
monthMetaField,
|
|
lastChangedField,
|
|
isLastChangedField
|
|
) where
|
|
|
|
import Types.MetaData
|
|
|
|
import Data.List
|
|
|
|
tagMetaField :: MetaField
|
|
tagMetaField = mkMetaFieldUnchecked "tag"
|
|
|
|
yearMetaField :: MetaField
|
|
yearMetaField = mkMetaFieldUnchecked "year"
|
|
|
|
monthMetaField :: MetaField
|
|
monthMetaField = mkMetaFieldUnchecked "month"
|
|
|
|
lastChangedField :: MetaField -> MetaField
|
|
lastChangedField f = mkMetaFieldUnchecked (fromMetaField f ++ lastchanged)
|
|
|
|
isLastChangedField :: MetaField -> Bool
|
|
isLastChangedField f = lastchanged `isSuffixOf` s && s /= lastchanged
|
|
where
|
|
s = fromMetaField f
|
|
|
|
lastchanged :: String
|
|
lastchanged = "-lastchanged"
|