aboutsummaryrefslogtreecommitdiff
path: root/Backend/WORM.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-03-23 02:10:59 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-03-23 02:10:59 -0400
commitc43e3b5c787050664089fa4498e660a475addcd9 (patch)
tree3da57db088d99ac43c81245c9fd605ddf2854eda /Backend/WORM.hs
parent12cdc96216e0c516ceeee922f9ca1568e9d4d592 (diff)
check key size when available, no matter the backend
Now that SHA and other backends can have size info, fsck should check it whenever available.
Diffstat (limited to 'Backend/WORM.hs')
-rw-r--r--Backend/WORM.hs27
1 files changed, 1 insertions, 26 deletions
diff --git a/Backend/WORM.hs b/Backend/WORM.hs
index a011995da..b33c60763 100644
--- a/Backend/WORM.hs
+++ b/Backend/WORM.hs
@@ -10,15 +10,9 @@ module Backend.WORM (backends) where
import Control.Monad.State
import System.FilePath
import System.Posix.Files
-import System.Directory
-import Data.Maybe
import qualified Backend.File
import BackendClass
-import Locations
-import qualified Annex
-import Content
-import Messages
import Types
import Key
@@ -28,8 +22,7 @@ backends = [backend]
backend :: Backend Annex
backend = Backend.File.backend {
name = "WORM",
- getKey = keyValue,
- fsckKey = Backend.File.checkKey checkKeySize
+ getKey = keyValue
}
{- The key includes the file size, modification time, and the
@@ -48,21 +41,3 @@ keyValue file = do
keySize = Just $ fromIntegral $ fileSize stat,
keyMtime = Just $ modificationTime stat
}
-
-{- The size of the data for a key is checked against the size encoded in
- - the key's metadata. -}
-checkKeySize :: Key -> Annex Bool
-checkKeySize key = do
- g <- Annex.gitRepo
- let file = gitAnnexLocation g key
- present <- liftIO $ doesFileExist file
- if not present
- then return True
- else do
- s <- liftIO $ getFileStatus file
- if fromIntegral (fileSize s) == fromJust (keySize key)
- then return True
- else do
- dest <- moveBad key
- warning $ "Bad file size; moved to " ++ dest
- return False