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

View File

@ -5,13 +5,13 @@ module Stackage.InstallInfo
import qualified Data.Map as Map import qualified Data.Map as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import Data.Version (showVersion)
import Stackage.Config import Stackage.Config
import Stackage.HaskellPlatform import Stackage.HaskellPlatform
import Stackage.LoadDatabase import Stackage.LoadDatabase
import Stackage.NarrowDatabase import Stackage.NarrowDatabase
import Stackage.Types import Stackage.Types
import Stackage.Util import Stackage.Util
import Data.Version (showVersion)
dropExcluded :: BuildSettings dropExcluded :: BuildSettings
-> Map PackageName (VersionRange, Maintainer) -> 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 as L
import qualified Data.ByteString.Lazy.Char8 as L8 import qualified Data.ByteString.Lazy.Char8 as L8
import qualified Data.Map as Map import qualified Data.Map as Map
import Data.Maybe (mapMaybe)
import Data.Monoid (Monoid (..)) import Data.Monoid (Monoid (..))
import Data.Set (member) import Data.Set (member)
import qualified Data.Set as Set import qualified Data.Set as Set
import Distribution.Compiler (CompilerFlavor (GHC))
import Distribution.Package (Dependency (Dependency)) import Distribution.Package (Dependency (Dependency))
import Distribution.PackageDescription (condExecutables, import Distribution.PackageDescription (Condition (..),
ConfVar (..),
allBuildInfo,
benchmarkBuildInfo,
buildInfo, buildTools,
condBenchmarks,
condExecutables,
condLibrary, condLibrary,
condTestSuites, condTestSuites,
condBenchmarks, condTreeComponents,
condTreeConstraints, condTreeComponents, ConfVar (..), Condition(..), flagName, flagDefault, genPackageFlags, allBuildInfo, packageDescription, buildTools, libBuildInfo, condTreeData, buildInfo, testBuildInfo, benchmarkBuildInfo) condTreeConstraints,
condTreeData,
flagDefault, flagName,
genPackageFlags,
libBuildInfo,
packageDescription,
testBuildInfo)
import Distribution.PackageDescription.Parse (ParseResult (ParseOk), import Distribution.PackageDescription.Parse (ParseResult (ParseOk),
parsePackageDescription) parsePackageDescription)
import Distribution.System (buildArch, buildOS)
import Distribution.Version (withinRange) import Distribution.Version (withinRange)
import Stackage.Config
import Stackage.Types import Stackage.Types
import Stackage.Util 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. -- | Load the raw package database.
-- --

View File

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

View File

@ -3,21 +3,22 @@ module Stackage.Test
( runTestSuites ( runTestSuites
) where ) where
import Control.Exception (Exception, handle, throwIO)
import Control.Monad (foldM, unless, when) import Control.Monad (foldM, unless, when)
import qualified Data.Map as Map import qualified Data.Map as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import Data.Typeable (Typeable)
import Stackage.Config import Stackage.Config
import Stackage.Types import Stackage.Types
import Stackage.Util import Stackage.Util
import System.Directory (createDirectory, removeFile, canonicalizePath) import System.Directory (canonicalizePath, createDirectory,
removeFile)
import System.Environment (getEnvironment) import System.Environment (getEnvironment)
import System.Exit (ExitCode (ExitSuccess)) import System.Exit (ExitCode (ExitSuccess))
import System.FilePath ((<.>), (</>)) import System.FilePath ((<.>), (</>))
import System.IO (IOMode (WriteMode, AppendMode), import System.IO (IOMode (WriteMode, AppendMode),
withBinaryFile) withBinaryFile)
import System.Process (runProcess, waitForProcess) import System.Process (runProcess, waitForProcess)
import Control.Exception (handle, Exception, throwIO)
import Data.Typeable (Typeable)
runTestSuites :: BuildSettings -> InstallInfo -> IO () runTestSuites :: BuildSettings -> InstallInfo -> IO ()
runTestSuites settings ii = do 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) HaskellPlatform a x `mappend` HaskellPlatform b y = HaskellPlatform (mappend a b) (mappend x y)
data InstallInfo = InstallInfo data InstallInfo = InstallInfo
{ iiCore :: Set PackageName { iiCore :: Set PackageName
, iiPackages :: Map PackageName (Version, Maintainer) , iiPackages :: Map PackageName (Version, Maintainer)
, iiOptionalCore :: Map PackageName Version , iiOptionalCore :: Map PackageName Version
-- ^ This is intended to hold onto packages which might be automatically -- ^ This is intended to hold onto packages which might be automatically
-- provided in the global package database. In practice, this would be -- provided in the global package database. In practice, this would be
-- Haskell Platform packages provided by distributions. -- Haskell Platform packages provided by distributions.
, iiPackageDB :: PackageDB , iiPackageDB :: PackageDB
} }
-- | Email address of a Stackage maintainer. -- | Email address of a Stackage maintainer.
@ -56,16 +56,16 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
deriving (Show, Eq, Ord) deriving (Show, Eq, Ord)
data BuildSettings = BuildSettings data BuildSettings = BuildSettings
{ sandboxRoot :: FilePath { sandboxRoot :: FilePath
, extraBuildArgs :: [String] , extraBuildArgs :: [String]
, extraCore :: Set PackageName , extraCore :: Set PackageName
, expectedFailures :: Set PackageName , expectedFailures :: Set PackageName
, stablePackages :: Map PackageName (VersionRange, Maintainer) , stablePackages :: Map PackageName (VersionRange, Maintainer)
, extraArgs :: [String] , extraArgs :: [String]
, haskellPlatformCabal :: FilePath , haskellPlatformCabal :: FilePath
, requireHaskellPlatform :: Bool , requireHaskellPlatform :: Bool
, cleanBeforeBuild :: Bool , cleanBeforeBuild :: Bool
, excludedPackages :: Set PackageName , excludedPackages :: Set PackageName
-- ^ Packages which should be dropped from the list of stable packages, -- ^ Packages which should be dropped from the list of stable packages,
-- even if present via the Haskell Platform or @stablePackages@. If these -- even if present via the Haskell Platform or @stablePackages@. If these
-- packages are dependencies of others, they will still be included. -- packages are dependencies of others, they will still be included.

View File

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