diff options
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Content.hs | 8 | ||||
-rw-r--r-- | Annex/MetaData.hs | 19 |
2 files changed, 13 insertions, 14 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs index aaae595aa..8ad3d5e65 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -218,7 +218,7 @@ getViaTmpUnchecked = finishGetViaTmp (return True) getViaTmpChecked :: Annex Bool -> Key -> (FilePath -> Annex Bool) -> Annex Bool getViaTmpChecked check key action = - prepGetViaTmpChecked key $ + prepGetViaTmpChecked key False $ finishGetViaTmp check key action {- Prepares to download a key via a tmp file, and checks that there is @@ -229,8 +229,8 @@ getViaTmpChecked check key action = - - Wen there's enough free space, runs the download action. -} -prepGetViaTmpChecked :: Key -> Annex Bool -> Annex Bool -prepGetViaTmpChecked key getkey = do +prepGetViaTmpChecked :: Key -> a -> Annex a -> Annex a +prepGetViaTmpChecked key unabletoget getkey = do tmp <- fromRepo $ gitAnnexTmpObjectLocation key e <- liftIO $ doesFileExist tmp @@ -242,7 +242,7 @@ prepGetViaTmpChecked key getkey = do -- The tmp file may not have been left writable when e $ thawContent tmp getkey - , return False + , return unabletoget ) finishGetViaTmp :: Annex Bool -> Key -> (FilePath -> Annex Bool) -> Annex Bool diff --git a/Annex/MetaData.hs b/Annex/MetaData.hs index f382f0ab1..f1b79e3f4 100644 --- a/Annex/MetaData.hs +++ b/Annex/MetaData.hs @@ -7,6 +7,7 @@ module Annex.MetaData ( genMetaData, + addDateMetaData, module X ) where @@ -37,20 +38,18 @@ genMetaData :: Key -> FilePath -> FileStatus -> Annex () genMetaData key file status = do maybe noop (flip copyMetaData key) =<< catKeyFileHEAD file whenM (annexGenMetaData <$> Annex.getGitConfig) $ do - metadata <- getCurrentMetaData key - let metadata' = genMetaData' status metadata - unless (metadata' == emptyMetaData) $ - addMetaData key metadata' + curr <- getCurrentMetaData key + addMetaData key (addDateMetaData mtime curr) + where + mtime = posixSecondsToUTCTime $ realToFrac $ modificationTime status -{- Generates metadata from the FileStatus. +{- Generates metadata for a file's date stamp. - Does not overwrite any existing metadata values. -} -genMetaData' :: FileStatus -> MetaData -> MetaData -genMetaData' status old = MetaData $ M.fromList $ filter isnew +addDateMetaData :: UTCTime -> MetaData -> MetaData +addDateMetaData mtime old = MetaData $ M.fromList $ filter isnew [ (yearMetaField, S.singleton $ toMetaValue $ show y) , (monthMetaField, S.singleton $ toMetaValue $ show m) ] where isnew (f, _) = S.null (currentMetaDataValues f old) - (y, m, _d) = toGregorian $ utctDay $ - posixSecondsToUTCTime $ realToFrac $ - modificationTime status + (y, m, _d) = toGregorian $ utctDay $ mtime |