{-# 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 }