summaryrefslogtreecommitdiff
path: root/doc/bugs/check_for_curl_in_configure.hs.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bugs/check_for_curl_in_configure.hs.mdwn')
-rw-r--r--doc/bugs/check_for_curl_in_configure.hs.mdwn92
1 files changed, 0 insertions, 92 deletions
diff --git a/doc/bugs/check_for_curl_in_configure.hs.mdwn b/doc/bugs/check_for_curl_in_configure.hs.mdwn
deleted file mode 100644
index a880392bf..000000000
--- a/doc/bugs/check_for_curl_in_configure.hs.mdwn
+++ /dev/null
@@ -1,92 +0,0 @@
-[[!meta title="arbitrary/configurable backends"]]
-
-(Retitling as this has drifted..)
-
----
-
-I thought this might be useful, since curl is being used for the URL backend, it might be worth checking for it's existence.
-
-<pre>
-diff --git a/configure.hs b/configure.hs
-index 772ba54..1a563e0 100644
---- a/configure.hs
-+++ b/configure.hs
-@@ -13,6 +13,7 @@ tests = [
- , TestCase "uuid generator" $ selectCmd "uuid" ["uuid", "uuidgen"]
- , TestCase "xargs -0" $ requireCmd "xargs_0" "xargs -0 </dev/null"
- , TestCase "rsync" $ requireCmd "rsync" "rsync --version >/dev/null"
-+ , TestCase "curl" $ requireCmd "curl" "curl --version >/dev/null"
- , TestCase "unicode FilePath support" $ unicodeFilePath
- ] ++ shaTestCases [1, 256, 512, 224, 384]
-</pre>
-
-> Well, curl is an optional extra, so requireCmd is too strong. Changed
-> to testCmd and applied, thank you!
->
-> I thought about actually *using* the resulting SysConfig.curl
-> to disable the URL backend if False.. but probably it's better
-> to just let it fail if curl is not available. Although, if we wanted
-> to add a check for wget or something and use it when curl was not
-> available, that might be worth doing. --[[Joey]]
-
->> I was thinking that is it worth doing a generic "stat", "delete", "get"
->> and "put" options, I do like the idea of having the possibility of
->> being about to use completely arbitrary storage systems or arbitrary
->> transfer systems. If there was the capability of doing so it would be
->> interesting to see possibilities of using aria2 for using something
->> like bittorrent as backend, or using something like irods or some
->> grid storage system as the storage archive. It's just an idea as
->> I have seen it implemented quite well in irods.
-
->>> I'm unsure about the idea of having a backend where that is
->>> parameterized. It would mean that one annex's GENERIC-foo key
->>> might be entirely different from another's key with the same backend
->>> and details. And a misconfiguration could get data the wrong
->>> way and get the wrong data, etc.
->>>
->>> I mostly look at the URL backend as an example that can be modified to
->>> make this kind of custom backend. You already probably know enough to
->>> make a TORRENT backend where keys are the urls to torrents to download
->>> with `aria2c --follow-torrent=mem`.
->>>
->>> I am also interested in doing backends that use eg, cloud storage.
->>> A S3 backend that could upload files to S3 in addition to downloading
->>> them, for example, would be handy. --[[Joey]]
-
->>>> So, rather than use backends to do this, it instead made more sense
->>>> to make them [[special_remotes]]. The URL backend remains a bit
->>>> of a special case, and a bittorrent backend that downloaded a file
->>>> from a bittorrent url would still be a good use of backend, but for
->>>> storing files in external data stores like S3, making it a remote
->>>> makes better sense. I think I can close this bug now, [[done]]
->>>> --[[Joey]]
-
-also in Backend/URL.hs is it worth making a minor change to the way curl is called (I'm not sure if the following is correct or not)
-
-> It's correct, typewise, but I don't see any real reason to bother
-> with the change. But I do appreciate patches, which have been rare
-> so far, probaby because of Haskell.. :) --[[Joey]]
-
->> heh agreed
-
-<pre>
-diff --git a/Backend/URL.hs b/Backend/URL.hs
-index 29dc8fe..4afcf86 100644
---- a/Backend/URL.hs
-+++ b/Backend/URL.hs
-@@ -50,10 +50,13 @@ dummyFsck _ _ _ = return True
- dummyOk :: Key -> Annex Bool
- dummyOk _ = return True
-
-+curl :: [CommandParam] -> IO Bool
-+curl = boolSystem "curl"
-+
- downloadUrl :: Key -> FilePath -> Annex Bool
- downloadUrl key file = do
- showNote "downloading"
- showProgress -- make way for curl progress bar
-- liftIO $ boolSystem "curl" [Params "-# -o", File file, File url]
-+ liftIO $ curl [Params "-# -o", File file, File url]
- where
- url = join ":" $ drop 1 $ split ":" $ show key
-</pre>