summaryrefslogtreecommitdiff
path: root/Backend
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-03-02 13:47:45 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-03-02 13:47:45 -0400
commita3daac8a8b06bbe2f35ca16cc1b27e21cad8a0e1 (patch)
treeea6bc56c9a70014279c83e1d440476a2c032d1a9 /Backend
parent70a6eb6d73b3e302b9b9c02342581fada25dcad9 (diff)
only enable SHA backends that configure finds support for
Diffstat (limited to 'Backend')
-rw-r--r--Backend/SHA.hs32
-rw-r--r--Backend/SHA1.hs14
-rw-r--r--Backend/SHA224.hs14
-rw-r--r--Backend/SHA384.hs14
-rw-r--r--Backend/SHA512.hs14
-rw-r--r--Backend/URL.hs5
-rw-r--r--Backend/WORM.hs5
7 files changed, 32 insertions, 66 deletions
diff --git a/Backend/SHA.hs b/Backend/SHA.hs
index d779e8055..c074ab48a 100644
--- a/Backend/SHA.hs
+++ b/Backend/SHA.hs
@@ -5,13 +5,14 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Backend.SHA (genBackend) where
+module Backend.SHA (backends) where
import Control.Monad.State
import Data.String.Utils
import System.Cmd.Utils
import System.IO
import System.Directory
+import Data.Maybe
import qualified Backend.File
import BackendTypes
@@ -21,16 +22,31 @@ import Locations
import Content
import Types
import Utility
+import qualified SysConfig
type SHASize = Int
--- Constructor for Backends using a given SHASize.
-genBackend :: SHASize -> Backend Annex
-genBackend size = Backend.File.backend
- { name = shaName size
- , getKey = keyValue size
- , fsckKey = Backend.File.checkKey $ checkKeyChecksum size
- }
+backends :: [Backend Annex]
+-- order is slightly significant; want sha1 first ,and more general
+-- sizes earlier
+backends = catMaybes $ map genBackend [1, 256, 512, 224, 384]
+
+genBackend :: SHASize -> Maybe (Backend Annex)
+genBackend size
+ | supported size = Just b
+ | otherwise = Nothing
+ where
+ b = Backend.File.backend
+ { name = shaName 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
shaName :: SHASize -> String
shaName size = "SHA" ++ show size
diff --git a/Backend/SHA1.hs b/Backend/SHA1.hs
deleted file mode 100644
index 76d2af69e..000000000
--- a/Backend/SHA1.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{- git-annex "SHA1" backend
- -
- - Copyright 2011 Joey Hess <joey@kitenet.net>
- -
- - Licensed under the GNU GPL version 3 or higher.
- -}
-
-module Backend.SHA1 (backend) where
-
-import Types
-import Backend.SHA
-
-backend :: Backend Annex
-backend = genBackend 1
diff --git a/Backend/SHA224.hs b/Backend/SHA224.hs
deleted file mode 100644
index 614f31c4b..000000000
--- a/Backend/SHA224.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{- git-annex "SHA224" backend
- -
- - Copyright 2011 Joey Hess <joey@kitenet.net>
- -
- - Licensed under the GNU GPL version 3 or higher.
- -}
-
-module Backend.SHA224 (backend) where
-
-import Types
-import Backend.SHA
-
-backend :: Backend Annex
-backend = genBackend 224
diff --git a/Backend/SHA384.hs b/Backend/SHA384.hs
deleted file mode 100644
index 0cf77ea64..000000000
--- a/Backend/SHA384.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{- git-annex "SHA384" backend
- -
- - Copyright 2011 Joey Hess <joey@kitenet.net>
- -
- - Licensed under the GNU GPL version 3 or higher.
- -}
-
-module Backend.SHA384 (backend) where
-
-import Types
-import Backend.SHA
-
-backend :: Backend Annex
-backend = genBackend 384
diff --git a/Backend/SHA512.hs b/Backend/SHA512.hs
deleted file mode 100644
index aed8bbced..000000000
--- a/Backend/SHA512.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{- git-annex "SHA512" backend
- -
- - Copyright 2011 Joey Hess <joey@kitenet.net>
- -
- - Licensed under the GNU GPL version 3 or higher.
- -}
-
-module Backend.SHA512 (backend) where
-
-import Types
-import Backend.SHA
-
-backend :: Backend Annex
-backend = genBackend 512
diff --git a/Backend/URL.hs b/Backend/URL.hs
index 864c79301..29dc8fefa 100644
--- a/Backend/URL.hs
+++ b/Backend/URL.hs
@@ -5,7 +5,7 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Backend.URL (backend) where
+module Backend.URL (backends) where
import Control.Monad.State (liftIO)
import Data.String.Utils
@@ -15,6 +15,9 @@ import BackendTypes
import Utility
import Messages
+backends :: [Backend Annex]
+backends = [backend]
+
backend :: Backend Annex
backend = Backend {
name = "URL",
diff --git a/Backend/WORM.hs b/Backend/WORM.hs
index 92fe5a2d4..8a6412eb1 100644
--- a/Backend/WORM.hs
+++ b/Backend/WORM.hs
@@ -5,7 +5,7 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Backend.WORM (backend) where
+module Backend.WORM (backends) where
import Control.Monad.State
import System.FilePath
@@ -22,6 +22,9 @@ import Content
import Messages
import Types
+backends :: [Backend Annex]
+backends = [backend]
+
backend :: Backend Annex
backend = Backend.File.backend {
name = "WORM",