Drop the dependency on the haskell curl bindings, use regular haskell HTTP.
This commit is contained in:
parent
71c783bf24
commit
5c69ac14eb
7 changed files with 25 additions and 15 deletions
|
@ -14,10 +14,9 @@ module Remote.Web (
|
|||
import Control.Monad.State (liftIO)
|
||||
import Control.Exception
|
||||
import System.FilePath
|
||||
import Network.Curl.Easy
|
||||
import Network.Curl.Opts
|
||||
import Network.Curl.Types
|
||||
import Network.Curl.Code
|
||||
import Network.Browser
|
||||
import Network.HTTP
|
||||
import Network.URI
|
||||
|
||||
import Types
|
||||
import Types.Remote
|
||||
|
@ -31,6 +30,8 @@ import PresenceLog
|
|||
import LocationLog
|
||||
import Locations
|
||||
|
||||
type URLString = String
|
||||
|
||||
remote :: RemoteType Annex
|
||||
remote = RemoteType {
|
||||
typename = "web",
|
||||
|
@ -111,13 +112,19 @@ checkKey' (u:us) = do
|
|||
|
||||
urlexists :: URLString -> IO Bool
|
||||
urlexists url = do
|
||||
curl <- initialize
|
||||
_ <- setopt curl (CurlURL url)
|
||||
_ <- setopt curl (CurlNoBody True)
|
||||
_ <- setopt curl (CurlFailOnError True)
|
||||
_ <- setopt curl (CurlFollowLocation True)
|
||||
res <- perform curl
|
||||
return $ res == CurlOK
|
||||
case parseURI url of
|
||||
Nothing -> return False
|
||||
Just u -> do
|
||||
(_, r) <- Network.Browser.browse $ do
|
||||
setErrHandler ignore
|
||||
setOutHandler ignore
|
||||
setAllowRedirects True
|
||||
request (mkRequest HEAD u :: Request_String)
|
||||
case rspCode r of
|
||||
(2,_,_) -> return True
|
||||
_ -> return False
|
||||
where
|
||||
ignore = const $ return ()
|
||||
|
||||
download :: [URLString] -> FilePath -> Annex Bool
|
||||
download [] _ = return False
|
||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -5,6 +5,7 @@ git-annex (3.20110703) UNRELEASED; urgency=low
|
|||
hard link made to it.
|
||||
* uninit: Use unannex in --fast mode, to support unannexing multiple
|
||||
files that link to the same content.
|
||||
* Drop the dependency on the haskell curl bindings, use regular haskell HTTP.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Mon, 04 Jul 2011 15:50:21 -0400
|
||||
|
||||
|
|
2
debian/control
vendored
2
debian/control
vendored
|
@ -9,8 +9,8 @@ Build-Depends:
|
|||
libghc-pcre-light-dev,
|
||||
libghc-sha-dev,
|
||||
libghc-dataenc-dev,
|
||||
libghc-http-dev,
|
||||
libghc-utf8-string-dev,
|
||||
libghc-curl-dev,
|
||||
libghc-hs3-dev (>= 0.5.6),
|
||||
libghc-testpack-dev [any-i386 any-amd64],
|
||||
ikiwiki,
|
||||
|
|
|
@ -25,7 +25,7 @@ To build and use git-annex, you will need:
|
|||
* [dataenc](http://hackage.haskell.org/package/dataenc)
|
||||
* [TestPack](http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack)
|
||||
* [QuickCheck 2](http://hackage.haskell.org/package/QuickCheck)
|
||||
* [curl](http://hackage.haskell.org/package/curl)
|
||||
* [HTTP](http://hackage.haskell.org/package/HTTP)
|
||||
* [hS3](http://hackage.haskell.org/package/hS3) (optional, but recommended)
|
||||
* Shell commands
|
||||
* [git](http://git-scm.com/)
|
||||
|
|
|
@ -9,6 +9,7 @@ sudo cabal install pcre-light
|
|||
sudo cabal install quickcheck
|
||||
sudo cabal install SHA
|
||||
sudo cabal install dataenc
|
||||
sudo cabal install HTTP
|
||||
sudo cabal install hS3
|
||||
|
||||
git clone git://git-annex.branchable.com/
|
||||
|
|
|
@ -7,6 +7,7 @@ sudo cabal install pcre-light
|
|||
sudo cabal install quickcheck
|
||||
sudo cabal install SHA
|
||||
sudo cabal install dataenc
|
||||
sudo cabal install HTTP
|
||||
sudo cabal install hS3 # optional
|
||||
|
||||
# optional: this will enable the gnu tools, (to give sha224sum etc..., it does not override the BSD userland)
|
||||
|
|
|
@ -30,14 +30,14 @@ Executable git-annex
|
|||
Main-Is: git-annex.hs
|
||||
Build-Depends: haskell98, MissingH, hslogger, directory, filepath,
|
||||
unix, containers, utf8-string, network, mtl, bytestring, old-locale, time,
|
||||
pcre-light, extensible-exceptions, dataenc, SHA, process, hS3, curl,
|
||||
pcre-light, extensible-exceptions, dataenc, SHA, process, hS3, HTTP
|
||||
base < 5
|
||||
|
||||
Executable git-annex-shell
|
||||
Main-Is: git-annex-shell.hs
|
||||
Build-Depends: haskell98, MissingH, hslogger, directory, filepath,
|
||||
unix, containers, utf8-string, network, mtl, bytestring, old-locale, time,
|
||||
pcre-light, extensible-exceptions, dataenc, SHA, process, hS3, curl,
|
||||
pcre-light, extensible-exceptions, dataenc, SHA, process, hS3, HTTP
|
||||
base < 5
|
||||
|
||||
Executable git-union-merge
|
||||
|
|
Loading…
Reference in a new issue