Stylish Haskell

This commit is contained in:
Michael Snoyman 2012-12-05 10:50:51 +02:00
parent 594c88e0a8
commit ddd44dbb0e
7 changed files with 58 additions and 41 deletions

View File

@ -4,24 +4,28 @@ module Stackage.Build
, BuildSettings (..)
) where
import Distribution.Text (simpleParse)
import Control.Exception (assert)
import Control.Monad (unless, when)
import Stackage.Types
import qualified Data.Map as Map
import Data.Set (empty)
import qualified Data.Set as Set
import Distribution.Text (simpleParse)
import Distribution.Version (thisVersion, withinRange)
import Stackage.CheckPlan
import Stackage.Config
import Stackage.InstallInfo
import Stackage.Tarballs
import Stackage.Test
import Stackage.Types
import Stackage.Util
import Stackage.Config
import System.Directory (canonicalizePath,
createDirectoryIfMissing,
doesDirectoryExist)
import System.Exit (ExitCode (ExitSuccess), exitWith)
import System.IO (IOMode (WriteMode), withBinaryFile, hPutStrLn)
import System.Process (runProcess, waitForProcess, rawSystem, readProcess)
import System.Directory (createDirectoryIfMissing, canonicalizePath, doesDirectoryExist)
import Distribution.Version (thisVersion, withinRange)
import Control.Exception (assert)
import Data.Set (empty)
import qualified Data.Map as Map
import qualified Data.Set as Set
import System.IO (IOMode (WriteMode), hPutStrLn,
withBinaryFile)
import System.Process (rawSystem, readProcess, runProcess,
waitForProcess)
defaultBuildSettings :: BuildSettings
defaultBuildSettings = BuildSettings

View File

@ -5,13 +5,13 @@ module Stackage.InstallInfo
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Version (showVersion)
import Stackage.Config
import Stackage.HaskellPlatform
import Stackage.LoadDatabase
import Stackage.NarrowDatabase
import Stackage.Types
import Stackage.Util
import Data.Version (showVersion)
dropExcluded :: BuildSettings
-> Map PackageName (VersionRange, Maintainer)

View File

@ -4,24 +4,36 @@ import qualified Codec.Archive.Tar as Tar
import qualified Data.ByteString.Lazy as L
import qualified Data.ByteString.Lazy.Char8 as L8
import qualified Data.Map as Map
import Data.Maybe (mapMaybe)
import Data.Monoid (Monoid (..))
import Data.Set (member)
import qualified Data.Set as Set
import Distribution.Compiler (CompilerFlavor (GHC))
import Distribution.Package (Dependency (Dependency))
import Distribution.PackageDescription (condExecutables,
import Distribution.PackageDescription (Condition (..),
ConfVar (..),
allBuildInfo,
benchmarkBuildInfo,
buildInfo, buildTools,
condBenchmarks,
condExecutables,
condLibrary,
condTestSuites,
condBenchmarks,
condTreeConstraints, condTreeComponents, ConfVar (..), Condition(..), flagName, flagDefault, genPackageFlags, allBuildInfo, packageDescription, buildTools, libBuildInfo, condTreeData, buildInfo, testBuildInfo, benchmarkBuildInfo)
condTreeComponents,
condTreeConstraints,
condTreeData,
flagDefault, flagName,
genPackageFlags,
libBuildInfo,
packageDescription,
testBuildInfo)
import Distribution.PackageDescription.Parse (ParseResult (ParseOk),
parsePackageDescription)
import Distribution.System (buildArch, buildOS)
import Distribution.Version (withinRange)
import Stackage.Config
import Stackage.Types
import Stackage.Util
import Stackage.Config
import Data.Maybe (mapMaybe)
import Distribution.System (buildOS, buildArch)
import Distribution.Compiler (CompilerFlavor (GHC))
-- | Load the raw package database.
--

View File

@ -2,14 +2,14 @@ module Stackage.Tarballs
( makeTarballs
) where
import qualified Codec.Archive.Tar as Tar
import qualified Data.ByteString.Lazy as L
import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Codec.Archive.Tar as Tar
import qualified Data.ByteString.Lazy as L
import qualified Data.Map as Map
import qualified Data.Set as Set
import Stackage.Types
import Stackage.Util
import System.Directory (createDirectoryIfMissing)
import System.FilePath (takeDirectory)
import System.Directory (createDirectoryIfMissing)
import System.FilePath (takeDirectory)
makeTarballs :: InstallInfo -> IO ()
makeTarballs ii = do

View File

@ -3,21 +3,22 @@ module Stackage.Test
( runTestSuites
) where
import Control.Exception (Exception, handle, throwIO)
import Control.Monad (foldM, unless, when)
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Typeable (Typeable)
import Stackage.Config
import Stackage.Types
import Stackage.Util
import System.Directory (createDirectory, removeFile, canonicalizePath)
import System.Directory (canonicalizePath, createDirectory,
removeFile)
import System.Environment (getEnvironment)
import System.Exit (ExitCode (ExitSuccess))
import System.FilePath ((<.>), (</>))
import System.IO (IOMode (WriteMode, AppendMode),
withBinaryFile)
import System.Process (runProcess, waitForProcess)
import Control.Exception (handle, Exception, throwIO)
import Data.Typeable (Typeable)
runTestSuites :: BuildSettings -> InstallInfo -> IO ()
runTestSuites settings ii = do

View File

@ -42,13 +42,13 @@ instance Monoid HaskellPlatform where
HaskellPlatform a x `mappend` HaskellPlatform b y = HaskellPlatform (mappend a b) (mappend x y)
data InstallInfo = InstallInfo
{ iiCore :: Set PackageName
, iiPackages :: Map PackageName (Version, Maintainer)
{ iiCore :: Set PackageName
, iiPackages :: Map PackageName (Version, Maintainer)
, iiOptionalCore :: Map PackageName Version
-- ^ This is intended to hold onto packages which might be automatically
-- provided in the global package database. In practice, this would be
-- Haskell Platform packages provided by distributions.
, iiPackageDB :: PackageDB
, iiPackageDB :: PackageDB
}
-- | Email address of a Stackage maintainer.
@ -56,16 +56,16 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
deriving (Show, Eq, Ord)
data BuildSettings = BuildSettings
{ sandboxRoot :: FilePath
, extraBuildArgs :: [String]
, extraCore :: Set PackageName
, expectedFailures :: Set PackageName
, stablePackages :: Map PackageName (VersionRange, Maintainer)
, extraArgs :: [String]
, haskellPlatformCabal :: FilePath
{ sandboxRoot :: FilePath
, extraBuildArgs :: [String]
, extraCore :: Set PackageName
, expectedFailures :: Set PackageName
, stablePackages :: Map PackageName (VersionRange, Maintainer)
, extraArgs :: [String]
, haskellPlatformCabal :: FilePath
, requireHaskellPlatform :: Bool
, cleanBeforeBuild :: Bool
, excludedPackages :: Set PackageName
, cleanBeforeBuild :: Bool
, excludedPackages :: Set PackageName
-- ^ Packages which should be dropped from the list of stable packages,
-- even if present via the Haskell Platform or @stablePackages@. If these
-- packages are dependencies of others, they will still be included.

View File

@ -14,8 +14,8 @@ import Stackage.Types
import System.Directory (doesDirectoryExist,
removeDirectoryRecursive)
import System.Directory (getAppUserDataDirectory)
import System.Environment (getEnvironment)
import System.FilePath ((</>))
import System.Environment (getEnvironment)
identsToRanges :: Set PackageIdentifier -> Map PackageName (VersionRange, Maintainer)
identsToRanges =