The “Transport” data type you suggest seems like a good refactor. I’m less 
certain about the use of ProgramDB — the documentation suggests it will only be 
populated from command line flags in the “configure” step, or from .cabal 
files. Since upload/download do not take place in such settings, I don’t think 
it will contain useful information yet. So it might be the right approach to 
use it, but it would also require, I suspect, modifying other parts of the 
cabal-install executable to populate it properly?

—Gershom


On May 6, 2015 at 3:32:44 AM, Mikhail Glushenkov 
(the.dead.shall.r...@gmail.com) wrote:
> On 6 May 2015 at 00:26, Gershom B wrote:
> > Ok, on my "https" branch here: https://github.com/gbaz/Cabal/tree/https
>  
> Looks like a good first step. Consider using machinery in
> Distribution.Simple.Program.Db for searching for curl/wget in path or
> in user-provided location.
>  
> I'd also use something like
>  
> data Transport = { getHttp :: URI -> FilePath -> IO (Int, String),
> putHttp :: URI -> FilePath -> ...}
>  
> configureTransport :: ProgramDB -> IO Transport
>  
> instead of switching on TransportType in getHttp/uploadToUri.
>  

_______________________________________________
cabal-devel mailing list
cabal-devel@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel

Reply via email to