git-annex/Backend/URL.hs
Joey Hess 3334d3831b
change retrieveExport and getKey to throw exception
retrieveExport is part of ongoing transition to make remote methods
throw exceptions, rather than silently hide them.

getKey very rarely fails, and when it does it's always for the same reason
(user configured annex.backend to url for some reason). So, this will
avoid dealing with Nothing everywhere it's used.

This commit was sponsored by Ilya Shlyakhter on Patreon.
2020-05-15 13:45:53 -04:00

39 lines
836 B
Haskell

{- git-annex "URL" backend -- keys whose content is available from urls.
-
- Copyright 2011 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
module Backend.URL (
backends,
fromUrl
) where
import Annex.Common
import Types.Key
import Types.Backend
import Backend.Utilities
backends :: [Backend]
backends = [backend]
backend :: Backend
backend = Backend
{ backendVariety = URLKey
, getKey = Nothing
, verifyKeyContent = Nothing
, canUpgradeKey = Nothing
, fastMigrate = Nothing
-- The content of an url can change at any time, so URL keys are
-- not stable.
, isStableKey = const False
}
{- Every unique url has a corresponding key. -}
fromUrl :: String -> Maybe Integer -> Key
fromUrl url size = mkKey $ \k -> k
{ keyName = genKeyName url
, keyVariety = URLKey
, keySize = size
}