summaryrefslogtreecommitdiff
path: root/Remote/Bup.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-09-12 15:54:35 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-09-12 15:54:35 -0400
commitb2ffbaf43ca2773e51ff2d5665db67f86f8ccdd7 (patch)
tree5b98d88bf1cbaf9e0d41458f6b9469f1895d6bdf /Remote/Bup.hs
parent4515c27f4273969ef2fae1dc0f90dbe98a905eae (diff)
Support hot-swapping of removable drives containing gcrypt repositories.
To support this, a core.gcrypt-id is stored by git-annex inside the git config of a local gcrypt repository, when setting it up. That is compared with the remote's cached gcrypt-id. When different, a drive has been changed. git-annex then looks up the remote config for the uuid mapped from the core.gcrypt-id, and tweaks the configuration appropriately. When there is no known config for the uuid, it will refuse to use the remote.
Diffstat (limited to 'Remote/Bup.hs')
-rw-r--r--Remote/Bup.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/Remote/Bup.hs b/Remote/Bup.hs
index 09e89e38f..960ed4ada 100644
--- a/Remote/Bup.hs
+++ b/Remote/Bup.hs
@@ -42,7 +42,7 @@ remote = RemoteType {
setup = bupSetup
}
-gen :: Git.Repo -> UUID -> RemoteConfig -> RemoteGitConfig -> Annex Remote
+gen :: Git.Repo -> UUID -> RemoteConfig -> RemoteGitConfig -> Annex (Maybe Remote)
gen r u c gc = do
bupr <- liftIO $ bup2GitRemote buprepo
cst <- remoteCost gc $
@@ -72,7 +72,7 @@ gen r u c gc = do
, globallyAvailable = not $ bupLocal buprepo
, readonly = False
}
- return $ encryptableRemote c
+ return $ Just $ encryptableRemote c
(storeEncrypted new buprepo)
(retrieveEncrypted buprepo)
new