mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-02-19 17:55:48 +01:00
Even better filterForbidden
This commit is contained in:
parent
c02e3ff8e1
commit
7849ced880
@ -15,6 +15,7 @@ import Data.Monoid (Monoid (..))
|
|||||||
import Data.Set (Set)
|
import Data.Set (Set)
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
import Data.Time (UTCTime, parseTime)
|
import Data.Time (UTCTime, parseTime)
|
||||||
|
import Distribution.Text (display)
|
||||||
import Network.HTTP (getRequest, getResponseBody, simpleHTTP)
|
import Network.HTTP (getRequest, getResponseBody, simpleHTTP)
|
||||||
import qualified Stackage.Types as ST
|
import qualified Stackage.Types as ST
|
||||||
import System.Directory (doesFileExist)
|
import System.Directory (doesFileExist)
|
||||||
@ -159,10 +160,13 @@ filterForbidden :: ST.BuildPlan
|
|||||||
-> Forbidden
|
-> Forbidden
|
||||||
-> Forbidden
|
-> Forbidden
|
||||||
filterForbidden bp =
|
filterForbidden bp =
|
||||||
MonoidMap . Map.filterWithKey isIncluded . unMonoidMap
|
MonoidMap . Map.mapMaybeWithKey isIncluded . unMonoidMap
|
||||||
where
|
where
|
||||||
isIncluded pn _ = ST.PackageName pn `Set.member` allPackages
|
isIncluded :: PackageName
|
||||||
allPackages =
|
-> PackageHistory
|
||||||
Map.keysSet (ST.bpPackages bp) `Set.union`
|
-> Maybe PackageHistory
|
||||||
ST.bpCore bp `Set.union`
|
isIncluded pn ph = do
|
||||||
Map.keysSet (ST.bpOptionalCore bp)
|
spi <- Map.lookup (ST.PackageName pn) $ ST.bpPackages bp
|
||||||
|
let version = display $ ST.spiVersion spi
|
||||||
|
tuple <- Map.lookup version ph
|
||||||
|
Just $ Map.singleton version tuple
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user