mirror of
https://github.com/haskell-nix/hnix-store.git
synced 2024-09-11 18:05:56 +03:00
prefix BuildResult fields
This commit is contained in:
parent
d3c9bc3bf1
commit
fb1bcfdb61
@ -42,23 +42,23 @@ data BuildStatus =
|
||||
-- | Result of the build
|
||||
data BuildResult = BuildResult
|
||||
{ -- | build status, MiscFailure should be default
|
||||
status :: !BuildStatus
|
||||
buildResultStatus :: !BuildStatus
|
||||
, -- | possible build error message
|
||||
errorMessage :: !(Maybe Text)
|
||||
buildResultErrorMessage :: !(Maybe Text)
|
||||
, -- | How many times this build was performed
|
||||
timesBuilt :: !Int
|
||||
buildResultTimesBuilt :: !Int
|
||||
, -- | If timesBuilt > 1, whether some builds did not produce the same result
|
||||
isNonDeterministic :: !Bool
|
||||
buildResultIsNonDeterministic :: !Bool
|
||||
, -- Start time of this build
|
||||
startTime :: !UTCTime
|
||||
buildResultStartTime :: !UTCTime
|
||||
, -- Stop time of this build
|
||||
stopTime :: !UTCTime
|
||||
buildResultStopTime :: !UTCTime
|
||||
}
|
||||
deriving (Eq, Generic, Ord, Show)
|
||||
|
||||
buildSuccess :: BuildResult -> Bool
|
||||
buildSuccess BuildResult {..} =
|
||||
status `elem`
|
||||
buildResultStatus `elem`
|
||||
[ BuildStatus_Built
|
||||
, BuildStatus_Substituted
|
||||
, BuildStatus_AlreadyValid
|
||||
|
@ -41,25 +41,25 @@ instance Serialize BuildStatus where
|
||||
|
||||
instance Serialize BuildResult where
|
||||
get = do
|
||||
status <- get
|
||||
errorMessage <-
|
||||
buildResultStatus <- get
|
||||
buildResultErrorMessage <-
|
||||
(\em -> Data.Bool.bool (Just em) Nothing (Data.Text.null em))
|
||||
<$> get
|
||||
timesBuilt <- getInt
|
||||
isNonDeterministic <- getBool
|
||||
startTime <- getTime
|
||||
stopTime <- getTime
|
||||
buildResultTimesBuilt <- getInt
|
||||
buildResultIsNonDeterministic <- getBool
|
||||
buildResultStartTime <- getTime
|
||||
buildResultStopTime <- getTime
|
||||
pure $ BuildResult{..}
|
||||
|
||||
put BuildResult{..} = do
|
||||
put status
|
||||
case errorMessage of
|
||||
put buildResultStatus
|
||||
case buildResultErrorMessage of
|
||||
Just err -> putText err
|
||||
Nothing -> putText mempty
|
||||
putInt timesBuilt
|
||||
putBool isNonDeterministic
|
||||
putTime startTime
|
||||
putTime stopTime
|
||||
putInt buildResultTimesBuilt
|
||||
putBool buildResultIsNonDeterministic
|
||||
putTime buildResultStartTime
|
||||
putTime buildResultStopTime
|
||||
|
||||
-- * GCAction
|
||||
--
|
||||
|
@ -704,21 +704,21 @@ buildMode = enum
|
||||
buildResult :: NixSerializer r SError BuildResult
|
||||
buildResult = Serializer
|
||||
{ getS = do
|
||||
status <- getS enum
|
||||
errorMessage <- getS maybeText
|
||||
timesBuilt <- getS int
|
||||
isNonDeterministic <- getS bool
|
||||
startTime <- getS time
|
||||
stopTime <- getS time
|
||||
buildResultStatus <- getS enum
|
||||
buildResultErrorMessage <- getS maybeText
|
||||
buildResultTimesBuilt <- getS int
|
||||
buildResultIsNonDeterministic <- getS bool
|
||||
buildResultStartTime <- getS time
|
||||
buildResultStopTime <- getS time
|
||||
pure $ BuildResult{..}
|
||||
|
||||
, putS = \BuildResult{..} -> do
|
||||
putS enum status
|
||||
putS maybeText errorMessage
|
||||
putS int timesBuilt
|
||||
putS bool isNonDeterministic
|
||||
putS time startTime
|
||||
putS time stopTime
|
||||
putS enum buildResultStatus
|
||||
putS maybeText buildResultErrorMessage
|
||||
putS int buildResultTimesBuilt
|
||||
putS bool buildResultIsNonDeterministic
|
||||
putS time buildResultStartTime
|
||||
putS time buildResultStopTime
|
||||
}
|
||||
|
||||
-- * Logger
|
||||
|
@ -18,12 +18,12 @@ deriving via GenericArbitrary BuildStatus
|
||||
|
||||
instance Arbitrary BuildResult where
|
||||
arbitrary = do
|
||||
status <- arbitrary
|
||||
buildResultStatus <- arbitrary
|
||||
-- we encode empty errorMessage as Nothing
|
||||
errorMessage <- arbitrary `suchThat` (/= Just mempty)
|
||||
timesBuilt <- arbitrary
|
||||
isNonDeterministic <- arbitrary
|
||||
startTime <- arbitrary
|
||||
stopTime <- arbitrary
|
||||
buildResultErrorMessage <- arbitrary `suchThat` (/= Just mempty)
|
||||
buildResultTimesBuilt <- arbitrary
|
||||
buildResultIsNonDeterministic <- arbitrary
|
||||
buildResultStartTime <- arbitrary
|
||||
buildResultStopTime <- arbitrary
|
||||
|
||||
pure $ BuildResult{..}
|
||||
|
Loading…
Reference in New Issue
Block a user