buildbox-1.2.0.0: BuildBox/Build/BuildState.hs
{-# OPTIONS_HADDOCK hide #-}
module BuildBox.Build.BuildState
( BuildState(..)
, buildStateDefault)
where
import System.IO
-- BuildConfig ------------------------------------------------------------------------------------
-- | Global builder configuration.
data BuildState
= BuildState
{ -- | Log all system commands executed to this file handle.
buildStateLogSystem :: Maybe Handle
-- | Uniqueish id for this build process.
-- On POSIX we'd use the PID, but that doesn't work on Windows.
-- The id is initialised by the Haskell random number generator on startup.
, buildStateId :: Integer
-- | Sequence number for generating fresh file names.
, buildStateSeq :: Integer
-- | Scratch directory for making temp files.
, buildStateScratchDir :: FilePath }
-- | The default build config.
buildStateDefault :: Integer -> FilePath -> BuildState
buildStateDefault uniqId scratchDir
= BuildState
{ buildStateLogSystem = Nothing
, buildStateId = uniqId
, buildStateSeq = 0
, buildStateScratchDir = scratchDir }