external backends wip
It's able to start them up, the only thing not implemented is generating and verifying keys. And, the key translation for HasExt.
This commit is contained in:
parent
b5d6a36db0
commit
f75be32166
24 changed files with 482 additions and 136 deletions
|
@ -199,7 +199,7 @@ performRemote key afile backend numcopies remote =
|
|||
|
||||
startKey :: Maybe Remote -> Incremental -> (Key, ActionItem) -> NumCopies -> CommandStart
|
||||
startKey from inc (key, ai) numcopies =
|
||||
case Backend.maybeLookupBackendVariety (fromKey keyVariety key) of
|
||||
Backend.maybeLookupBackendVariety (fromKey keyVariety key) >>= \case
|
||||
Nothing -> stop
|
||||
Just backend -> runFsck inc ai key $
|
||||
case from of
|
||||
|
@ -261,7 +261,7 @@ verifyLocationLog key keystatus ai = do
|
|||
- insecure hash is present. This should only be able to happen
|
||||
- if the repository already contained the content before the
|
||||
- config was set. -}
|
||||
when (present && not (Backend.isCryptographicallySecure key)) $
|
||||
whenM (pure present <&&> (not <$> Backend.isCryptographicallySecure key)) $
|
||||
whenM (annexSecureHashesOnly <$> Annex.getGitConfig) $
|
||||
warning $ "** Despite annex.securehashesonly being set, " ++ obj ++ " has content present in the annex using an insecure " ++ decodeBS (formatKeyVariety (fromKey keyVariety key)) ++ " key"
|
||||
|
||||
|
|
|
@ -131,7 +131,10 @@ clean file = do
|
|||
-- Look up the backend that was used for this file
|
||||
-- before, so that when git re-cleans a file its
|
||||
-- backend does not change.
|
||||
let oldbackend = maybe Nothing (maybeLookupBackendVariety . fromKey keyVariety) oldkey
|
||||
oldbackend <- maybe
|
||||
(pure Nothing)
|
||||
(maybeLookupBackendVariety . fromKey keyVariety)
|
||||
oldkey
|
||||
-- Can't restage associated files because git add
|
||||
-- runs this and has the index locked.
|
||||
let norestage = Restage False
|
||||
|
|
|
@ -288,7 +288,7 @@ test runannex mkr mkk =
|
|||
Nothing -> return True
|
||||
runannex a' @? "failed"
|
||||
present r k b = (== Right b) <$> Remote.hasKey r k
|
||||
fsck _ k = case maybeLookupBackendVariety (fromKey keyVariety k) of
|
||||
fsck _ k = maybeLookupBackendVariety (fromKey keyVariety k) >>= \case
|
||||
Nothing -> return True
|
||||
Just b -> case Types.Backend.verifyKeyContent b of
|
||||
Nothing -> return True
|
||||
|
|
|
@ -59,7 +59,8 @@ showPackageVersion = do
|
|||
vinfo "build flags" $ unwords buildFlags
|
||||
vinfo "dependency versions" $ unwords dependencyVersions
|
||||
vinfo "key/value backends" $ unwords $
|
||||
map (decodeBS . formatKeyVariety . B.backendVariety) Backend.list
|
||||
map (decodeBS . formatKeyVariety . B.backendVariety) Backend.builtinList
|
||||
++ ["X*"]
|
||||
vinfo "remote types" $ unwords $ map R.typename Remote.remoteTypes
|
||||
vinfo "operating system" $ unwords [os, arch]
|
||||
vinfo "supported repository versions" $
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue