summaryrefslogtreecommitdiff
path: root/Backend
diff options
context:
space:
mode:
authorGravatar Fraser Tweedale <frase@frase.id.au>2011-04-08 10:08:11 +1000
committerGravatar Fraser Tweedale <frase@frase.id.au>2011-04-08 10:08:11 +1000
commitf5b2d650bb75dc7ca2f77dae59fb1ab7f7405e03 (patch)
treeb8dbb3f450e2ec18cdfe1128e9c21adfb6e2b953 /Backend
parentbd1bbc21fac4b36975d03638d15e9aab915927cf (diff)
recognise differently-named shaN programs
Diffstat (limited to 'Backend')
-rw-r--r--Backend/SHA.hs18
1 files changed, 10 insertions, 8 deletions
diff --git a/Backend/SHA.hs b/Backend/SHA.hs
index 0ec555ce3..42b5efeff 100644
--- a/Backend/SHA.hs
+++ b/Backend/SHA.hs
@@ -35,7 +35,7 @@ backends = catMaybes $ map genBackend [1, 256, 512, 224, 384]
genBackend :: SHASize -> Maybe (Backend Annex)
genBackend size
- | supported size = Just b
+ | shaCommand size /= "" = Just b
| otherwise = Nothing
where
b = Backend.File.backend
@@ -43,12 +43,14 @@ genBackend size
, getKey = keyValue size
, fsckKey = Backend.File.checkKey $ checkKeyChecksum size
}
- supported 1 = SysConfig.sha1sum
- supported 256 = SysConfig.sha256sum
- supported 224 = SysConfig.sha224sum
- supported 384 = SysConfig.sha384sum
- supported 512 = SysConfig.sha512sum
- supported _ = False
+
+shaCommand :: SHASize -> String
+shaCommand 1 = SysConfig.sha1
+shaCommand 256 = SysConfig.sha256
+shaCommand 224 = SysConfig.sha224
+shaCommand 384 = SysConfig.sha384
+shaCommand 512 = SysConfig.sha512
+shaCommand _ = ""
shaName :: SHASize -> String
shaName size = "SHA" ++ show size
@@ -63,7 +65,7 @@ shaN size file = do
then error $ command ++ " parse error"
else return $ head bits
where
- command = "sha" ++ (show size) ++ "sum"
+ command = shaCommand size
{- A key is a checksum of its contents. -}
keyValue :: SHASize -> FilePath -> Annex (Maybe Key)