summaryrefslogtreecommitdiff
path: root/Annex
diff options
context:
space:
mode:
Diffstat (limited to 'Annex')
-rw-r--r--Annex/MetaData.hs17
-rw-r--r--Annex/MetaData/StandardFields.hs38
2 files changed, 44 insertions, 11 deletions
diff --git a/Annex/MetaData.hs b/Annex/MetaData.hs
index 68aef33f1..f382f0ab1 100644
--- a/Annex/MetaData.hs
+++ b/Annex/MetaData.hs
@@ -5,11 +5,15 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Annex.MetaData where
+module Annex.MetaData (
+ genMetaData,
+ module X
+) where
import Common.Annex
import qualified Annex
-import Types.MetaData
+import Types.MetaData as X
+import Annex.MetaData.StandardFields as X
import Logs.MetaData
import Annex.CatFile
@@ -19,15 +23,6 @@ import Data.Time.Calendar
import Data.Time.Clock
import Data.Time.Clock.POSIX
-tagMetaField :: MetaField
-tagMetaField = mkMetaFieldUnchecked "tag"
-
-yearMetaField :: MetaField
-yearMetaField = mkMetaFieldUnchecked "year"
-
-monthMetaField :: MetaField
-monthMetaField = mkMetaFieldUnchecked "month"
-
{- Adds metadata for a file that has just been ingested into the
- annex, but has not yet been committed to git.
-
diff --git a/Annex/MetaData/StandardFields.hs b/Annex/MetaData/StandardFields.hs
new file mode 100644
index 000000000..00b810593
--- /dev/null
+++ b/Annex/MetaData/StandardFields.hs
@@ -0,0 +1,38 @@
+{- 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"