@@ -1,28 +1,19 @@
1module Main ( main ) where
1module Main ( main ) where
3−import System.IO ( hPutStrLn, hFlush, stdout, stderr )
3+import Cabal2Nix.Hackage ( hashPackage, readCabalFile )
4−import System.Environment -- ( getArgs )
5−import Control.Exception ( bracket )
6−import System.Exit ( exitFailure )
7−import Distribution.PackageDescription.Parse ( parsePackageDescription, ParseResult(..) )
8−import Distribution.PackageDescription ( package, packageDescription )
9−import Distribution.Text
10−import Data.List ( isPrefixOf )
11−import Control.Monad ( when )
12−import Network.HTTP ( simpleHTTP, getRequest, getResponseBody )
13−import System.Console.GetOpt ( OptDescr(..), ArgDescr(..), ArgOrder(..), usageInfo, getOpt )
15import Cabal2Nix.Package ( cabal2nix )
4import Cabal2Nix.Package ( cabal2nix )
16−import Cabal2Nix.Hackage ( hackagePath, Ext(..), hashPackage )
17import Distribution.NixOS.Derivation.Cabal
5import Distribution.NixOS.Derivation.Cabal
18import Distribution.NixOS.Derivation.Meta
6import Distribution.NixOS.Derivation.Meta
20−readCabalFile :: FilePath -> IO String
8+import Control.Exception ( bracket )
21−readCabalFile path
9+import Control.Monad ( when )
22− | "cabal://" `isPrefixOf` path = let Just pid = simpleParse (drop 8 path) in readCabalFile (hackagePath pid Cabal)
10+import Distribution.PackageDescription ( package, packageDescription )
23− | "http://" `isPrefixOf` path = simpleHTTP (getRequest path) >>= getResponseBody
11+import Distribution.PackageDescription.Parse ( parsePackageDescription, ParseResult(..) )
24− | "file://" `isPrefixOf` path = readCabalFile (drop 7 path)
12+import Distribution.Text ( disp )
25− | otherwise = readFile path
13+import System.Console.GetOpt ( OptDescr(..), ArgDescr(..), ArgOrder(..), usageInfo, getOpt )
14+import System.Environment ( getArgs )
15+import System.Exit ( exitFailure )
16+import System.IO ( hPutStrLn, hFlush, stdout, stderr )
27data CliOption = PrintHelp | SHA256 String | Maintainer String | Platform String | NoHaddock
18data CliOption = PrintHelp | SHA256 String | Maintainer String | Platform String | NoHaddock
28 deriving (Eq)
19 deriving (Eq)