mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-28 07:00:25 +01:00
printForbidden and filterForbidden
This commit is contained in:
parent
612252625d
commit
c02e3ff8e1
@ -2,6 +2,8 @@
|
|||||||
-- uploaders.
|
-- uploaders.
|
||||||
module Stackage.Uploads
|
module Stackage.Uploads
|
||||||
( checkUploads
|
( checkUploads
|
||||||
|
, printForbidden
|
||||||
|
, filterForbidden
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Exception (assert, evaluate)
|
import Control.Exception (assert, evaluate)
|
||||||
@ -14,13 +16,14 @@ 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 Network.HTTP (getRequest, getResponseBody, simpleHTTP)
|
import Network.HTTP (getRequest, getResponseBody, simpleHTTP)
|
||||||
|
import qualified Stackage.Types as ST
|
||||||
import System.Directory (doesFileExist)
|
import System.Directory (doesFileExist)
|
||||||
import System.Exit (exitFailure)
|
import System.Exit (exitFailure)
|
||||||
import System.Locale
|
import System.Locale
|
||||||
|
|
||||||
checkUploads :: FilePath -- ^ allowed
|
checkUploads :: FilePath -- ^ allowed
|
||||||
-> FilePath -- ^ new allowed
|
-> FilePath -- ^ new allowed
|
||||||
-> IO ()
|
-> IO Forbidden
|
||||||
checkUploads allowedFP newAllowedFP = do
|
checkUploads allowedFP newAllowedFP = do
|
||||||
putStrLn "Getting upload log"
|
putStrLn "Getting upload log"
|
||||||
uploadLog <- getUploadLog
|
uploadLog <- getUploadLog
|
||||||
@ -37,7 +40,7 @@ checkUploads allowedFP newAllowedFP = do
|
|||||||
putStrLn $ "Newly uploaded packages detected, writing to " ++ newAllowedFP
|
putStrLn $ "Newly uploaded packages detected, writing to " ++ newAllowedFP
|
||||||
writeAllowed newAllowedFP allowed'
|
writeAllowed newAllowedFP allowed'
|
||||||
|
|
||||||
printForbidden forbidden
|
return forbidden
|
||||||
|
|
||||||
-- Define a Map newtype wrapper with a proper Monoid instance.
|
-- Define a Map newtype wrapper with a proper Monoid instance.
|
||||||
newtype MonoidMap k v = MonoidMap { unMonoidMap :: Map k v }
|
newtype MonoidMap k v = MonoidMap { unMonoidMap :: Map k v }
|
||||||
@ -151,3 +154,15 @@ printForbidden (MonoidMap forbidden) = unless (Map.null forbidden) $ do
|
|||||||
, show time
|
, show time
|
||||||
]
|
]
|
||||||
exitFailure
|
exitFailure
|
||||||
|
|
||||||
|
filterForbidden :: ST.BuildPlan
|
||||||
|
-> Forbidden
|
||||||
|
-> Forbidden
|
||||||
|
filterForbidden bp =
|
||||||
|
MonoidMap . Map.filterWithKey isIncluded . unMonoidMap
|
||||||
|
where
|
||||||
|
isIncluded pn _ = ST.PackageName pn `Set.member` allPackages
|
||||||
|
allPackages =
|
||||||
|
Map.keysSet (ST.bpPackages bp) `Set.union`
|
||||||
|
ST.bpCore bp `Set.union`
|
||||||
|
Map.keysSet (ST.bpOptionalCore bp)
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import Stackage.Select (defaultSelectSettings, select)
|
|||||||
import Stackage.Tarballs (makeTarballs)
|
import Stackage.Tarballs (makeTarballs)
|
||||||
import Stackage.Test (runTestSuites)
|
import Stackage.Test (runTestSuites)
|
||||||
import Stackage.Types
|
import Stackage.Types
|
||||||
import Stackage.Uploads (checkUploads)
|
import Stackage.Uploads (checkUploads, printForbidden)
|
||||||
import Stackage.Util (allowPermissive)
|
import Stackage.Util (allowPermissive)
|
||||||
import System.Environment (getArgs, getProgName)
|
import System.Environment (getArgs, getProgName)
|
||||||
import System.IO (hFlush, stdout)
|
import System.IO (hFlush, stdout)
|
||||||
@ -85,7 +85,7 @@ main :: IO ()
|
|||||||
main = do
|
main = do
|
||||||
args <- getArgs
|
args <- getArgs
|
||||||
case args of
|
case args of
|
||||||
["uploads"] -> checkUploads "allowed.txt" "new-allowed.txt"
|
["uploads"] -> checkUploads "allowed.txt" "new-allowed.txt" >>= printForbidden
|
||||||
"select":rest -> do
|
"select":rest -> do
|
||||||
SelectArgs {..} <- parseSelectArgs rest
|
SelectArgs {..} <- parseSelectArgs rest
|
||||||
ghcVersion <- getGhcVersion
|
ghcVersion <- getGhcVersion
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user