{-# LANGUAGE RecordWildCards #-}
module System.Nix.Build (
BuildMode(..)
, BuildStatus(..)
, BuildResult(..)
, buildSuccess
) where
import Data.Text (Text)
import Data.HashSet (HashSet)
import System.Nix.Path (Path)
data BuildMode = Normal | Repair | Check
deriving (Eq, Ord, Enum, Show)
data BuildStatus =
Built
| Substituted
| AlreadyValid
| PermanentFailure
| InputRejected
| OutputRejected
| TransientFailure
| CachedFailure
| TimedOut
| MiscFailure
| DependencyFailed
| LogLimitExceeded
| NotDeterministic
deriving (Eq, Ord, Enum, Show)
data BuildResult = BuildResult
{
status :: !BuildStatus
,
error :: !(Maybe Text)
,
timesBuilt :: !Integer
,
isNonDeterministic :: !Bool
} deriving (Eq, Ord, Show)
buildSuccess BuildResult{..} = status == Built || status == Substituted || status == AlreadyValid