on master help sign in
Stylish Haskell
6ba5db2Michael Snoyman
Stackage/Build.hs+8−8
@@ -4,18 +4,18 @@ module Stackage.Build
4 , BuildSettings (..)
4 , BuildSettings (..)
5 ) where
5 ) where
6
6
7−import Control.Monad (unless)
7+import Control.Monad (unless)
8−import Prelude hiding (pi)
8+import Prelude hiding (pi)
9+import Stackage.CheckCabalVersion (checkCabalVersion)
9import Stackage.Config
10import Stackage.Config
10import Stackage.InstallInfo
11import Stackage.InstallInfo
11import Stackage.Types
12import Stackage.Types
12import Stackage.Util
13import Stackage.Util
13−import System.Exit (ExitCode (ExitSuccess), exitWith)
14+import System.Exit (ExitCode (ExitSuccess), exitWith)
14−import System.IO (IOMode (WriteMode), hPutStrLn,
15+import System.IO (IOMode (WriteMode), hPutStrLn,
15− withBinaryFile)
16+ withBinaryFile)
16−import System.Process (rawSystem, runProcess,
17+import System.Process (rawSystem, runProcess,
17− waitForProcess)
18+ waitForProcess)
18−import Stackage.CheckCabalVersion (checkCabalVersion)
19
19
20defaultBuildSettings :: BuildSettings
20defaultBuildSettings :: BuildSettings
21defaultBuildSettings = BuildSettings
21defaultBuildSettings = BuildSettings
Stackage/BuildPlan.hs+5−5
@@ -1,14 +1,14 @@
1−{-# LANGUAGE RecordWildCards #-}
2{-# LANGUAGE FlexibleInstances #-}
1{-# LANGUAGE FlexibleInstances #-}
2+{-# LANGUAGE RecordWildCards #-}
3module Stackage.BuildPlan
3module Stackage.BuildPlan
4 ( readBuildPlan
4 ( readBuildPlan
5 , writeBuildPlan
5 , writeBuildPlan
6 ) where
6 ) where
7
7
8−import Stackage.Types
9−import qualified Data.Map as Map
8+import qualified Data.Map as Map
10−import qualified Data.Set as Set
9+import qualified Data.Set as Set
11−import Distribution.Text (simpleParse, display)
10+import Distribution.Text (display, simpleParse)
11+import Stackage.Types
12
12
13readBuildPlan :: FilePath -> IO BuildPlan
13readBuildPlan :: FilePath -> IO BuildPlan
14readBuildPlan fp = do
14readBuildPlan fp = do
Stackage/CheckPlan.hs+8−8
@@ -2,17 +2,17 @@ module Stackage.CheckPlan
2 ( checkPlan
2 ( checkPlan
3 ) where
3 ) where
4
4
5−import Control.Monad (unless, when)
5+import Control.Monad (unless, when)
6−import Data.List (isPrefixOf, sort)
6+import Data.List (isPrefixOf, sort)
7−import qualified Data.Map as Map
7+import qualified Data.Map as Map
8−import qualified Data.Set as Set
8+import qualified Data.Set as Set
9+import Stackage.CheckCabalVersion (checkCabalVersion)
9import Stackage.InstallInfo
10import Stackage.InstallInfo
10import Stackage.Types
11import Stackage.Types
11import Stackage.Util
12import Stackage.Util
12−import System.Exit (ExitCode (ExitFailure, ExitSuccess),
13+import System.Exit (ExitCode (ExitFailure, ExitSuccess),
13− exitWith)
14+ exitWith)
14−import System.Process (readProcessWithExitCode)
15+import System.Process (readProcessWithExitCode)
15−import Stackage.CheckCabalVersion (checkCabalVersion)
16
16
17data Mismatch = OnlyDryRun String | OnlySimpleList String
17data Mismatch = OnlyDryRun String | OnlySimpleList String
18 deriving Show
18 deriving Show
Stackage/InstallInfo.hs+1−1
@@ -9,7 +9,7 @@ import qualified Data.Map as Map
9import qualified Data.Set as Set
9import qualified Data.Set as Set
10import Data.Version (showVersion)
10import Data.Version (showVersion)
11import qualified Distribution.Text
11import qualified Distribution.Text
12−import Distribution.Version (withinRange, simplifyVersionRange)
12+import Distribution.Version (simplifyVersionRange, withinRange)
13import Stackage.HaskellPlatform
13import Stackage.HaskellPlatform
14import Stackage.LoadDatabase
14import Stackage.LoadDatabase
15import Stackage.NarrowDatabase
15import Stackage.NarrowDatabase
Stackage/NarrowDatabase.hs+4−4
@@ -1,12 +1,12 @@
1module Stackage.NarrowDatabase where
1module Stackage.NarrowDatabase where
2
2
3import Control.Monad.Trans.Writer
3import Control.Monad.Trans.Writer
4−import qualified Data.Map as Map
4+import qualified Data.Map as Map
5−import qualified Data.Set as Set
5+import qualified Data.Set as Set
6−import Prelude hiding (pi)
6+import Prelude hiding (pi)
7import Stackage.Types
7import Stackage.Types
8import Stackage.Util
8import Stackage.Util
9−import System.Exit (exitFailure)
9+import System.Exit (exitFailure)
10
10
11-- | Narrow down the database to only the specified packages and all of
11-- | Narrow down the database to only the specified packages and all of
12-- their dependencies.
12-- their dependencies.
Stackage/Select.hs+1−1
@@ -3,9 +3,9 @@ module Stackage.Select
3 , defaultSelectSettings
3 , defaultSelectSettings
4 ) where
4 ) where
5
5
6+import Data.Either (partitionEithers)
6import qualified Data.Map as Map
7import qualified Data.Map as Map
7import Data.Maybe (mapMaybe)
8import Data.Maybe (mapMaybe)
8−import Data.Either (partitionEithers)
9import Data.Set (empty)
9import Data.Set (empty)
10import qualified Data.Set as Set
10import qualified Data.Set as Set
11import Prelude hiding (pi)
11import Prelude hiding (pi)
Stackage/Test.hs+2−2
@@ -5,8 +5,8 @@ module Stackage.Test
5 ) where
5 ) where
6
6
7import qualified Control.Concurrent as C
7import qualified Control.Concurrent as C
8−import Control.Exception (Exception, handle, throwIO, SomeException)
8+import Control.Exception (Exception, SomeException, handle, throwIO)
9−import Control.Monad (unless, when, replicateM)
9+import Control.Monad (replicateM, unless, when)
10import qualified Data.Map as Map
10import qualified Data.Map as Map
11import qualified Data.Set as Set
11import qualified Data.Set as Set
12import Data.Typeable (Typeable)
12import Data.Typeable (Typeable)
Stackage/Types.hs+19−19
@@ -3,16 +3,16 @@ module Stackage.Types
3 , module Stackage.Types
3 , module Stackage.Types
4 ) where
4 ) where
5
5
6−import Data.Map as X (Map)
6+import Data.Map as X (Map)
7−import Data.Map (unionWith)
7+import Data.Map (unionWith)
8−import Data.Monoid (Monoid (..))
8+import Data.Monoid (Monoid (..))
9−import Data.Set as X (Set)
9+import Data.Set as X (Set)
10−import Data.Version as X (Version)
10+import Data.Version as X (Version)
11−import Distribution.Package as X (PackageIdentifier (..),
11+import Distribution.Package as X (PackageIdentifier (..),
12− PackageName (..))
12+ PackageName (..))
13+import Distribution.PackageDescription (GenericPackageDescription)
13−import Distribution.Version as X (VersionRange (..))
14+import Distribution.Version as X (VersionRange (..))
14−import Distribution.Version (intersectVersionRanges)
15+import Distribution.Version (intersectVersionRanges)
15−import Distribution.PackageDescription (GenericPackageDescription)
16
16
17newtype PackageDB = PackageDB (Map PackageName PackageInfo)
17newtype PackageDB = PackageDB (Map PackageName PackageInfo)
18 deriving (Show, Eq)
18 deriving (Show, Eq)
@@ -70,17 +70,17 @@ data InstallInfo = InstallInfo
70 }
70 }
71
71
72data SelectedPackageInfo = SelectedPackageInfo
72data SelectedPackageInfo = SelectedPackageInfo
73− { spiVersion :: Version
73+ { spiVersion :: Version
74 , spiMaintainer :: Maintainer
74 , spiMaintainer :: Maintainer
75 , spiGithubUser :: Maybe String
75 , spiGithubUser :: Maybe String
76− , spiHasTests :: Bool
76+ , spiHasTests :: Bool
77 }
77 }
78 deriving (Show, Read)
78 deriving (Show, Read)
79
79
80data BuildPlan = BuildPlan
80data BuildPlan = BuildPlan
81− { bpTools :: [String]
81+ { bpTools :: [String]
82− , bpPackages :: Map PackageName SelectedPackageInfo
82+ , bpPackages :: Map PackageName SelectedPackageInfo
83− , bpCore :: Set PackageName
83+ , bpCore :: Set PackageName
84 , bpOptionalCore :: Map PackageName Version
84 , bpOptionalCore :: Map PackageName Version
85 -- ^ See 'iiOptionalCore'
85 -- ^ See 'iiOptionalCore'
86 }
86 }
@@ -111,10 +111,10 @@ data SelectSettings = SelectSettings
111 }
111 }
112
112
113data BuildSettings = BuildSettings
113data BuildSettings = BuildSettings
114− { sandboxRoot :: FilePath
114+ { sandboxRoot :: FilePath
115− , extraArgs :: [String]
115+ , extraArgs :: [String]
116− , expectedFailuresBuild :: Set PackageName
116+ , expectedFailuresBuild :: Set PackageName
117− , testWorkerThreads :: Int
117+ , testWorkerThreads :: Int
118 -- ^ How many threads to spawn for running test suites.
118 -- ^ How many threads to spawn for running test suites.
119 }
119 }
120
120
Stackage/Util.hs+19−20
@@ -1,27 +1,26 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2module Stackage.Util where
2module Stackage.Util where
3
3
4−import qualified Codec.Archive.Tar as Tar
4+import qualified Codec.Archive.Tar as Tar
5−import qualified Codec.Archive.Tar.Entry as TarEntry
5+import qualified Codec.Archive.Tar.Entry as TarEntry
6−import Control.Monad (guard, when)
6+import Control.Monad (guard, when)
7−import Data.List (stripPrefix)
7+import Data.List (stripPrefix)
8−import qualified Data.Map as Map
8+import qualified Data.Map as Map
9−import qualified Data.Set as Set
9+import qualified Data.Set as Set
10−import Data.Version (showVersion)
10+import Data.Version (showVersion)
11−import Distribution.Text (simpleParse, display)
11+import Distribution.License (License (..))
12−import Distribution.Version (thisVersion)
13−import Stackage.Types
14−import System.Directory (doesDirectoryExist,
15− removeDirectoryRecursive)
16−import System.Directory (getAppUserDataDirectory)
17−import System.Environment (getEnvironment)
18−import System.FilePath ((</>))
19−import qualified Distribution.Package as P
12+import qualified Distribution.Package as P
20import qualified Distribution.PackageDescription as PD
13import qualified Distribution.PackageDescription as PD
21−import Distribution.License (License (..))
14+import Distribution.Text (display, simpleParse)
15+import Distribution.Version (thisVersion)
16+import Stackage.Types
17+import System.Directory (doesDirectoryExist,
18+ removeDirectoryRecursive)
19+import System.Directory (getAppUserDataDirectory)
22−import System.Directory (canonicalizePath,
20+import System.Directory (canonicalizePath,
23− createDirectoryIfMissing
21+ createDirectoryIfMissing)
24− )
22+import System.Environment (getEnvironment)
23+import System.FilePath ((</>))
25
24
26-- | Allow only packages with permissive licenses.
25-- | Allow only packages with permissive licenses.
27allowPermissive :: [String] -- ^ list of explicitly allowed packages
26allowPermissive :: [String] -- ^ list of explicitly allowed packages
app/stackage.hs+13−13
@@ -1,23 +1,23 @@
1{-# LANGUAGE RecordWildCards #-}
1{-# LANGUAGE RecordWildCards #-}
2−import Stackage.Types
2+import Data.Set (fromList)
3import Stackage.Build (build, defaultBuildSettings)
3import Stackage.Build (build, defaultBuildSettings)
4+import Stackage.BuildPlan (readBuildPlan, writeBuildPlan)
5+import Stackage.CheckPlan (checkPlan)
4import Stackage.Init (stackageInit)
6import Stackage.Init (stackageInit)
5−import Stackage.Util (allowPermissive)
6import Stackage.Select (defaultSelectSettings, select)
7import Stackage.Select (defaultSelectSettings, select)
7−import Stackage.CheckPlan (checkPlan)
8+import Stackage.Tarballs (makeTarballs)
9+import Stackage.Test (runTestSuites)
10+import Stackage.Types
11+import Stackage.Util (allowPermissive)
8import System.Environment (getArgs, getProgName)
12import System.Environment (getArgs, getProgName)
9−import Data.Set (fromList)
10import System.IO (hFlush, stdout)
13import System.IO (hFlush, stdout)
11−import Stackage.BuildPlan (readBuildPlan, writeBuildPlan)
12−import Stackage.Test (runTestSuites)
13−import Stackage.Tarballs (makeTarballs)
14
14
15data SelectArgs = SelectArgs
15data SelectArgs = SelectArgs
16− { excluded :: [String]
16+ { excluded :: [String]
17− , noPlatform :: Bool
17+ , noPlatform :: Bool
18 , onlyPermissive :: Bool
18 , onlyPermissive :: Bool
19− , allowed :: [String]
19+ , allowed :: [String]
20− , buildPlanDest :: FilePath
20+ , buildPlanDest :: FilePath
21 }
21 }
22
22
23parseSelectArgs :: [String] -> IO SelectArgs
23parseSelectArgs :: [String] -> IO SelectArgs
@@ -39,9 +39,9 @@ parseSelectArgs =
39 loop _ (y:_) = error $ "Did not understand argument: " ++ y
39 loop _ (y:_) = error $ "Did not understand argument: " ++ y
40
40
41data BuildArgs = BuildArgs
41data BuildArgs = BuildArgs
42− { sandbox :: String
42+ { sandbox :: String
43 , buildPlanSrc :: FilePath
43 , buildPlanSrc :: FilePath
44− , extraArgs' :: [String] -> [String]
44+ , extraArgs' :: [String] -> [String]
45 }
45 }
46
46
47parseBuildArgs :: [String] -> IO BuildArgs
47parseBuildArgs :: [String] -> IO BuildArgs