4ca3d1d584
and one tail Removed head from Utility.PartialPrelude in order to avoid the build warning with recent ghc versions as well.
41 lines
1.2 KiB
Haskell
41 lines
1.2 KiB
Haskell
{- git-annex backend varieties
|
|
-
|
|
- Copyright 2012-2024 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU AGPL version 3 or higher.
|
|
-}
|
|
|
|
module Backend.Variety where
|
|
|
|
import qualified Data.Map as M
|
|
|
|
import Annex.Common
|
|
import Types.Key
|
|
import Types.Backend
|
|
import qualified Backend.External
|
|
|
|
-- When adding a new backend, import it here and add it to the builtinList.
|
|
import qualified Backend.Hash
|
|
import qualified Backend.WORM
|
|
import qualified Backend.URL
|
|
import qualified Backend.GitRemoteAnnex
|
|
|
|
{- Regular backends. Does not include externals or VURL. -}
|
|
regularBackendList :: [Backend]
|
|
regularBackendList = Backend.Hash.backends
|
|
++ Backend.WORM.backends
|
|
++ Backend.URL.backends
|
|
++ Backend.GitRemoteAnnex.backends
|
|
|
|
{- The default hashing backend. -}
|
|
defaultHashBackend :: Backend
|
|
defaultHashBackend = fromMaybe (error "internal") $ headMaybe regularBackendList
|
|
|
|
makeVarietyMap :: [Backend] -> M.Map KeyVariety Backend
|
|
makeVarietyMap l = M.fromList $ zip (map backendVariety l) l
|
|
|
|
maybeLookupBackendVarietyMap :: KeyVariety -> M.Map KeyVariety Backend -> Annex (Maybe Backend)
|
|
maybeLookupBackendVarietyMap (ExternalKey s hasext) _varitymap =
|
|
Just <$> Backend.External.makeBackend s hasext
|
|
maybeLookupBackendVarietyMap v varietymap =
|
|
pure $ M.lookup v varietymap
|