only enable SHA backends that configure finds support for

This commit is contained in:
Joey Hess 2011-03-02 13:47:45 -04:00
parent 70a6eb6d73
commit a3daac8a8b
12 changed files with 57 additions and 89 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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",

View file

@ -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",