Remove http-conduit
This commit is contained in:
parent
73ffa34491
commit
2f3f9a72ec
11
Main.hs
11
Main.hs
@ -103,13 +103,10 @@ main = do
|
|||||||
maybeDependencies <- getDependencies
|
maybeDependencies <- getDependencies
|
||||||
maybeLicenses <- getLicenses
|
maybeLicenses <- getLicenses
|
||||||
|
|
||||||
case maybeDependencies of
|
case (maybeDependencies, maybeLicenses) of
|
||||||
Nothing ->
|
(Just dependencies, Just licenses) -> do
|
||||||
Exit.die "Error: ..."
|
|
||||||
|
|
||||||
Just dependencies -> do
|
|
||||||
(dependenciesByLicense', failed) <-
|
(dependenciesByLicense', failed) <-
|
||||||
orderPackagesByLicense quiet pid maybeLicenses dependencies
|
orderPackagesByLicense quiet pid licenses dependencies
|
||||||
|
|
||||||
let dependenciesByLicense = fmap (Set.map display) dependenciesByLicense'
|
let dependenciesByLicense = fmap (Set.map display) dependenciesByLicense'
|
||||||
|
|
||||||
@ -130,3 +127,5 @@ main = do
|
|||||||
unless (null failed) $ do
|
unless (null failed) $ do
|
||||||
putStr "Failed: "
|
putStr "Failed: "
|
||||||
print failed
|
print failed
|
||||||
|
_ ->
|
||||||
|
Exit.die "Error: ..."
|
||||||
|
|||||||
@ -33,8 +33,6 @@ library:
|
|||||||
source-dirs:
|
source-dirs:
|
||||||
src
|
src
|
||||||
dependencies:
|
dependencies:
|
||||||
- bytestring
|
|
||||||
- http-conduit >= 2.1 && < 2.4
|
|
||||||
- process
|
- process
|
||||||
|
|
||||||
executable:
|
executable:
|
||||||
|
|||||||
@ -26,12 +26,7 @@ module Licensor
|
|||||||
-- base
|
-- base
|
||||||
import qualified Control.Exception as Exception
|
import qualified Control.Exception as Exception
|
||||||
import Control.Monad (unless)
|
import Control.Monad (unless)
|
||||||
import Data.Monoid ((<>))
|
|
||||||
import Data.Version (Version)
|
import Data.Version (Version)
|
||||||
import System.IO
|
|
||||||
|
|
||||||
-- bytestring
|
|
||||||
import qualified Data.ByteString.Lazy as ByteString
|
|
||||||
|
|
||||||
-- Cabal
|
-- Cabal
|
||||||
import Distribution.License
|
import Distribution.License
|
||||||
@ -51,9 +46,6 @@ import qualified Data.Set as Set
|
|||||||
-- directory
|
-- directory
|
||||||
import System.Directory
|
import System.Directory
|
||||||
|
|
||||||
-- http-conduit
|
|
||||||
import Network.HTTP.Simple (HttpException, getResponseBody, httpLBS, parseRequest)
|
|
||||||
|
|
||||||
-- licensor
|
-- licensor
|
||||||
import qualified Paths_licensor
|
import qualified Paths_licensor
|
||||||
|
|
||||||
@ -155,9 +147,9 @@ getLicenses = do
|
|||||||
getPackageLicense
|
getPackageLicense
|
||||||
:: Bool
|
:: Bool
|
||||||
-> PackageIdentifier
|
-> PackageIdentifier
|
||||||
-> Maybe [(PackageName, License)]
|
-> [(PackageName, License)]
|
||||||
-> IO (Maybe LiLicense)
|
-> IO (Maybe LiLicense)
|
||||||
getPackageLicense quiet p@PackageIdentifier{..} (Just licenses) = do
|
getPackageLicense quiet p@PackageIdentifier{..} licenses = do
|
||||||
unless quiet (putStr $ display p ++ "...")
|
unless quiet (putStr $ display p ++ "...")
|
||||||
case lookup pkgName licenses of
|
case lookup pkgName licenses of
|
||||||
Just license -> do
|
Just license -> do
|
||||||
@ -165,35 +157,7 @@ getPackageLicense quiet p@PackageIdentifier{..} (Just licenses) = do
|
|||||||
return $ Just (LiLicense license)
|
return $ Just (LiLicense license)
|
||||||
Nothing ->
|
Nothing ->
|
||||||
return Nothing
|
return Nothing
|
||||||
getPackageLicense quiet p@PackageIdentifier{..} Nothing = do
|
-- PackageDescription{license} <- getPackageDescription file
|
||||||
unless quiet (putStr $ display p ++ "...")
|
|
||||||
let
|
|
||||||
url =
|
|
||||||
"GET https://hackage.haskell.org/package/"
|
|
||||||
<> display p
|
|
||||||
<> "/"
|
|
||||||
<> unPackageName pkgName
|
|
||||||
<> ".cabal"
|
|
||||||
|
|
||||||
req <- parseRequest url
|
|
||||||
eitherPd <- Exception.try $ fmap getResponseBody (httpLBS req)
|
|
||||||
|
|
||||||
case eitherPd of
|
|
||||||
Left (_ :: HttpException) ->
|
|
||||||
return Nothing
|
|
||||||
|
|
||||||
Right pd -> do
|
|
||||||
|
|
||||||
(file, handle) <- openTempFile "/tmp" "licensor"
|
|
||||||
hClose handle
|
|
||||||
ByteString.writeFile file pd
|
|
||||||
PackageDescription{license} <- getPackageDescription file
|
|
||||||
hClose handle
|
|
||||||
removeFile file
|
|
||||||
|
|
||||||
unless quiet (putStrLn $ display license)
|
|
||||||
|
|
||||||
return $ Just (LiLicense license)
|
|
||||||
|
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
@ -203,16 +167,16 @@ getPackageLicense quiet p@PackageIdentifier{..} Nothing = do
|
|||||||
orderPackagesByLicense
|
orderPackagesByLicense
|
||||||
:: Bool
|
:: Bool
|
||||||
-> Maybe PackageIdentifier
|
-> Maybe PackageIdentifier
|
||||||
-> Maybe [(PackageName, License)]
|
-> [(PackageName, License)]
|
||||||
-> Set PackageIdentifier
|
-> Set PackageIdentifier
|
||||||
-> IO (Map LiLicense (Set PackageIdentifier), Set PackageIdentifier)
|
-> IO (Map LiLicense (Set PackageIdentifier), Set PackageIdentifier)
|
||||||
orderPackagesByLicense quiet maybeP maybeLicenses =
|
orderPackagesByLicense quiet maybeP licenses =
|
||||||
let
|
let
|
||||||
cond =
|
cond =
|
||||||
maybe (const False) (==) maybeP
|
maybe (const False) (==) maybeP
|
||||||
|
|
||||||
insertPackage package orderedPackages' = do
|
insertPackage package orderedPackages' = do
|
||||||
maybeLicense <- getPackageLicense quiet package maybeLicenses
|
maybeLicense <- getPackageLicense quiet package licenses
|
||||||
|
|
||||||
(orderedPackages, failed) <- orderedPackages'
|
(orderedPackages, failed) <- orderedPackages'
|
||||||
return $
|
return $
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user