on master help sign in
Stylish Haskell
ddd44dbMichael Snoyman
Stackage/Build.hs+15−11
@@ -4,24 +4,28 @@ module Stackage.Build
4 , BuildSettings (..)
4 , BuildSettings (..)
5 ) where
5 ) where
6
6
7−import Distribution.Text (simpleParse)
7+import Control.Exception (assert)
8import Control.Monad (unless, when)
8import Control.Monad (unless, when)
9−import Stackage.Types
9+import qualified Data.Map as Map
10+import Data.Set (empty)
11+import qualified Data.Set as Set
12+import Distribution.Text (simpleParse)
13+import Distribution.Version (thisVersion, withinRange)
10import Stackage.CheckPlan
14import Stackage.CheckPlan
15+import Stackage.Config
11import Stackage.InstallInfo
16import Stackage.InstallInfo
12import Stackage.Tarballs
17import Stackage.Tarballs
13import Stackage.Test
18import Stackage.Test
19+import Stackage.Types
14import Stackage.Util
20import Stackage.Util
15−import Stackage.Config
21+import System.Directory (canonicalizePath,
22+ createDirectoryIfMissing,
23+ doesDirectoryExist)
16import System.Exit (ExitCode (ExitSuccess), exitWith)
24import System.Exit (ExitCode (ExitSuccess), exitWith)
17−import System.IO (IOMode (WriteMode), withBinaryFile, hPutStrLn)
25+import System.IO (IOMode (WriteMode), hPutStrLn,
26+ withBinaryFile)
18−import System.Process (runProcess, waitForProcess, rawSystem, readProcess)
27+import System.Process (rawSystem, readProcess, runProcess,
19−import System.Directory (createDirectoryIfMissing, canonicalizePath, doesDirectoryExist)
28+ waitForProcess)
20−import Distribution.Version (thisVersion, withinRange)
21−import Control.Exception (assert)
22−import Data.Set (empty)
23−import qualified Data.Map as Map
24−import qualified Data.Set as Set
25
29
26defaultBuildSettings :: BuildSettings
30defaultBuildSettings :: BuildSettings
27defaultBuildSettings = BuildSettings
31defaultBuildSettings = BuildSettings
Stackage/InstallInfo.hs+1−1
@@ -5,13 +5,13 @@ module Stackage.InstallInfo
5
5
6import qualified Data.Map as Map
6import qualified Data.Map as Map
7import qualified Data.Set as Set
7import qualified Data.Set as Set
8+import Data.Version (showVersion)
8import Stackage.Config
9import Stackage.Config
9import Stackage.HaskellPlatform
10import Stackage.HaskellPlatform
10import Stackage.LoadDatabase
11import Stackage.LoadDatabase
11import Stackage.NarrowDatabase
12import Stackage.NarrowDatabase
12import Stackage.Types
13import Stackage.Types
13import Stackage.Util
14import Stackage.Util
14−import Data.Version (showVersion)
15
15
16dropExcluded :: BuildSettings
16dropExcluded :: BuildSettings
17 -> Map PackageName (VersionRange, Maintainer)
17 -> Map PackageName (VersionRange, Maintainer)
Stackage/LoadDatabase.hs+19−7
@@ -4,24 +4,36 @@ import qualified Codec.Archive.Tar as Tar
4import qualified Data.ByteString.Lazy as L
4import qualified Data.ByteString.Lazy as L
5import qualified Data.ByteString.Lazy.Char8 as L8
5import qualified Data.ByteString.Lazy.Char8 as L8
6import qualified Data.Map as Map
6import qualified Data.Map as Map
7+import Data.Maybe (mapMaybe)
7import Data.Monoid (Monoid (..))
8import Data.Monoid (Monoid (..))
8import Data.Set (member)
9import Data.Set (member)
9import qualified Data.Set as Set
10import qualified Data.Set as Set
11+import Distribution.Compiler (CompilerFlavor (GHC))
10import Distribution.Package (Dependency (Dependency))
12import Distribution.Package (Dependency (Dependency))
11−import Distribution.PackageDescription (condExecutables,
13+import Distribution.PackageDescription (Condition (..),
14+ ConfVar (..),
15+ allBuildInfo,
16+ benchmarkBuildInfo,
17+ buildInfo, buildTools,
18+ condBenchmarks,
19+ condExecutables,
12 condLibrary,
20 condLibrary,
13 condTestSuites,
21 condTestSuites,
14− condBenchmarks,
22+ condTreeComponents,
15− condTreeConstraints, condTreeComponents, ConfVar (..), Condition(..), flagName, flagDefault, genPackageFlags, allBuildInfo, packageDescription, buildTools, libBuildInfo, condTreeData, buildInfo, testBuildInfo, benchmarkBuildInfo)
23+ condTreeConstraints,
24+ condTreeData,
25+ flagDefault, flagName,
26+ genPackageFlags,
27+ libBuildInfo,
28+ packageDescription,
29+ testBuildInfo)
16import Distribution.PackageDescription.Parse (ParseResult (ParseOk),
30import Distribution.PackageDescription.Parse (ParseResult (ParseOk),
17 parsePackageDescription)
31 parsePackageDescription)
32+import Distribution.System (buildArch, buildOS)
18import Distribution.Version (withinRange)
33import Distribution.Version (withinRange)
34+import Stackage.Config
19import Stackage.Types
35import Stackage.Types
20import Stackage.Util
36import Stackage.Util
21−import Stackage.Config
22−import Data.Maybe (mapMaybe)
23−import Distribution.System (buildOS, buildArch)
24−import Distribution.Compiler (CompilerFlavor (GHC))
25
37
26-- | Load the raw package database.
38-- | Load the raw package database.
27--
39--
Stackage/Tarballs.hs+6−6
@@ -2,14 +2,14 @@ module Stackage.Tarballs
2 ( makeTarballs
2 ( makeTarballs
3 ) where
3 ) where
4
4
5−import qualified Codec.Archive.Tar as Tar
5+import qualified Codec.Archive.Tar as Tar
6−import qualified Data.ByteString.Lazy as L
6+import qualified Data.ByteString.Lazy as L
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
9import Stackage.Types
9import Stackage.Types
10import Stackage.Util
10import Stackage.Util
11−import System.Directory (createDirectoryIfMissing)
11+import System.Directory (createDirectoryIfMissing)
12−import System.FilePath (takeDirectory)
12+import System.FilePath (takeDirectory)
13
13
14makeTarballs :: InstallInfo -> IO ()
14makeTarballs :: InstallInfo -> IO ()
15makeTarballs ii = do
15makeTarballs ii = do
Stackage/Test.hs+4−3
@@ -3,21 +3,22 @@ module Stackage.Test
3 ( runTestSuites
3 ( runTestSuites
4 ) where
4 ) where
5
5
6+import Control.Exception (Exception, handle, throwIO)
6import Control.Monad (foldM, unless, when)
7import Control.Monad (foldM, unless, when)
7import qualified Data.Map as Map
8import qualified Data.Map as Map
8import qualified Data.Set as Set
9import qualified Data.Set as Set
10+import Data.Typeable (Typeable)
9import Stackage.Config
11import Stackage.Config
10import Stackage.Types
12import Stackage.Types
11import Stackage.Util
13import Stackage.Util
12−import System.Directory (createDirectory, removeFile, canonicalizePath)
14+import System.Directory (canonicalizePath, createDirectory,
15+ removeFile)
13import System.Environment (getEnvironment)
16import System.Environment (getEnvironment)
14import System.Exit (ExitCode (ExitSuccess))
17import System.Exit (ExitCode (ExitSuccess))
15import System.FilePath ((<.>), (</>))
18import System.FilePath ((<.>), (</>))
16import System.IO (IOMode (WriteMode, AppendMode),
19import System.IO (IOMode (WriteMode, AppendMode),
17 withBinaryFile)
20 withBinaryFile)
18import System.Process (runProcess, waitForProcess)
21import System.Process (runProcess, waitForProcess)
19−import Control.Exception (handle, Exception, throwIO)
20−import Data.Typeable (Typeable)
21
22
22runTestSuites :: BuildSettings -> InstallInfo -> IO ()
23runTestSuites :: BuildSettings -> InstallInfo -> IO ()
23runTestSuites settings ii = do
24runTestSuites settings ii = do
Stackage/Types.hs+12−12
@@ -42,13 +42,13 @@ instance Monoid HaskellPlatform where
42 HaskellPlatform a x `mappend` HaskellPlatform b y = HaskellPlatform (mappend a b) (mappend x y)
42 HaskellPlatform a x `mappend` HaskellPlatform b y = HaskellPlatform (mappend a b) (mappend x y)
43
43
44data InstallInfo = InstallInfo
44data InstallInfo = InstallInfo
45− { iiCore :: Set PackageName
45+ { iiCore :: Set PackageName
46− , iiPackages :: Map PackageName (Version, Maintainer)
46+ , iiPackages :: Map PackageName (Version, Maintainer)
47 , iiOptionalCore :: Map PackageName Version
47 , iiOptionalCore :: Map PackageName Version
48 -- ^ This is intended to hold onto packages which might be automatically
48 -- ^ This is intended to hold onto packages which might be automatically
49 -- provided in the global package database. In practice, this would be
49 -- provided in the global package database. In practice, this would be
50 -- Haskell Platform packages provided by distributions.
50 -- Haskell Platform packages provided by distributions.
51− , iiPackageDB :: PackageDB
51+ , iiPackageDB :: PackageDB
52 }
52 }
53
53
54-- | Email address of a Stackage maintainer.
54-- | Email address of a Stackage maintainer.
@@ -56,16 +56,16 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
56 deriving (Show, Eq, Ord)
56 deriving (Show, Eq, Ord)
57
57
58data BuildSettings = BuildSettings
58data BuildSettings = BuildSettings
59− { sandboxRoot :: FilePath
59+ { sandboxRoot :: FilePath
60− , extraBuildArgs :: [String]
60+ , extraBuildArgs :: [String]
61− , extraCore :: Set PackageName
61+ , extraCore :: Set PackageName
62− , expectedFailures :: Set PackageName
62+ , expectedFailures :: Set PackageName
63− , stablePackages :: Map PackageName (VersionRange, Maintainer)
63+ , stablePackages :: Map PackageName (VersionRange, Maintainer)
64− , extraArgs :: [String]
64+ , extraArgs :: [String]
65− , haskellPlatformCabal :: FilePath
65+ , haskellPlatformCabal :: FilePath
66 , requireHaskellPlatform :: Bool
66 , requireHaskellPlatform :: Bool
67− , cleanBeforeBuild :: Bool
67+ , cleanBeforeBuild :: Bool
68− , excludedPackages :: Set PackageName
68+ , excludedPackages :: Set PackageName
69 -- ^ Packages which should be dropped from the list of stable packages,
69 -- ^ Packages which should be dropped from the list of stable packages,
70 -- even if present via the Haskell Platform or @stablePackages@. If these
70 -- even if present via the Haskell Platform or @stablePackages@. If these
71 -- packages are dependencies of others, they will still be included.
71 -- packages are dependencies of others, they will still be included.
Stackage/Util.hs+1−1
@@ -14,8 +14,8 @@ import Stackage.Types
14import System.Directory (doesDirectoryExist,
14import System.Directory (doesDirectoryExist,
15 removeDirectoryRecursive)
15 removeDirectoryRecursive)
16import System.Directory (getAppUserDataDirectory)
16import System.Directory (getAppUserDataDirectory)
17+import System.Environment (getEnvironment)
17import System.FilePath ((</>))
18import System.FilePath ((</>))
18−import System.Environment (getEnvironment)
19
19
20identsToRanges :: Set PackageIdentifier -> Map PackageName (VersionRange, Maintainer)
20identsToRanges :: Set PackageIdentifier -> Map PackageName (VersionRange, Maintainer)
21identsToRanges =
21identsToRanges =