3334d3831b
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.
39 lines
836 B
Haskell
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
|
|
}
|