aboutsummaryrefslogtreecommitdiff
path: root/Remote/External.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-03-05 13:50:15 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-03-05 13:50:15 -0400
commitf3958ecd07765975e4ea3d500cdc9694ad595d5e (patch)
treefeac52e85c2809dbb85de05496c87ecd767adcc8 /Remote/External.hs
parentc80bd8d1c3993312dd36888d81bd80b48584fb2d (diff)
Added SETURIPRESENT and SETURIMISSING to external special remote protocol
Useful for things like ipfs that don't use regular urls. An external special remote can add a regular url to a key, and then git-annex get will download it from the web. But for ipfs, we want to instead tell git-annex that the uri uses OtherDownloader. Before this change, the external special remote protocol lacked a way to do that.
Diffstat (limited to 'Remote/External.hs')
-rw-r--r--Remote/External.hs7
1 files changed, 7 insertions, 0 deletions
diff --git a/Remote/External.hs b/Remote/External.hs
index 0579400ed..7dd1736e4 100644
--- a/Remote/External.hs
+++ b/Remote/External.hs
@@ -223,6 +223,10 @@ handleRequest' lck external req mp responsehandler
setUrlPresent (externalUUID external) key url
handleRemoteRequest (SETURLMISSING key url) =
setUrlMissing (externalUUID external) key url
+ handleRemoteRequest (SETURIPRESENT key uri) =
+ withurl (SETURLPRESENT key) uri
+ handleRemoteRequest (SETURIMISSING key uri) =
+ withurl (SETURLMISSING key) uri
handleRemoteRequest (GETURLS key prefix) = do
mapM_ (send . VALUE . fst . getDownloader)
=<< getUrlsWithPrefix key prefix
@@ -242,6 +246,9 @@ handleRequest' lck external req mp responsehandler
}
where
base = replace "/" "_" $ fromUUID (externalUUID external) ++ "-" ++ setting
+
+ withurl mk uri = handleRemoteRequest $ mk $
+ setDownloader (show uri) OtherDownloader
sendMessage :: Sendable m => ExternalLock -> External -> m -> Annex ()
sendMessage lck external m =