on master help sign in
Even better filterForbidden
7849cedMichael Snoyman
Stackage/Uploads.hs+10−6
@@ -15,6 +15,7 @@ import Data.Monoid (Monoid (..))
15import Data.Set (Set)
15import Data.Set (Set)
16import qualified Data.Set as Set
16import qualified Data.Set as Set
17import Data.Time (UTCTime, parseTime)
17import Data.Time (UTCTime, parseTime)
18+import Distribution.Text (display)
18import Network.HTTP (getRequest, getResponseBody, simpleHTTP)
19import Network.HTTP (getRequest, getResponseBody, simpleHTTP)
19import qualified Stackage.Types as ST
20import qualified Stackage.Types as ST
20import System.Directory (doesFileExist)
21import System.Directory (doesFileExist)
@@ -159,10 +160,13 @@ filterForbidden :: ST.BuildPlan
159 -> Forbidden
160 -> Forbidden
160 -> Forbidden
161 -> Forbidden
161filterForbidden bp =
162filterForbidden bp =
162− MonoidMap . Map.filterWithKey isIncluded . unMonoidMap
163+ MonoidMap . Map.mapMaybeWithKey isIncluded . unMonoidMap
163 where
164 where
164− isIncluded pn _ = ST.PackageName pn `Set.member` allPackages
165+ isIncluded :: PackageName
165− allPackages =
166+ -> PackageHistory
167+ -> Maybe PackageHistory
168+ isIncluded pn ph = do
166− Map.keysSet (ST.bpPackages bp) `Set.union`
169+ spi <- Map.lookup (ST.PackageName pn) $ ST.bpPackages bp
167− ST.bpCore bp `Set.union`
170+ let version = display $ ST.spiVersion spi
168− Map.keysSet (ST.bpOptionalCore bp)
171+ tuple <- Map.lookup version ph
172+ Just $ Map.singleton version tuple