packages feed

hix-0.9.0: lib/Hix/Managed/Data/NixOutput.hs

module Hix.Managed.Data.NixOutput where

import Distribution.Pretty (Pretty (..))

import Hix.Data.PackageId (PackageId)

data Derivation =
  Derivation {
    path :: Text,
    log :: (Seq Text, Seq Text)
  }
  deriving stock (Eq, Show, Generic)

data PackageDerivation =
  PackageDerivation {
    package :: PackageId,
    success :: Bool,
    log :: [Text]
  }
  deriving stock (Eq, Show, Generic)

instance Pretty PackageDerivation where
  pretty PackageDerivation {package} = pretty package

data BuildsState =
  BuildsState {
    id :: Integer,
    done :: Int,
    failed :: Int,
    unassigned :: [Bool]
  }
  deriving stock (Eq, Show, Generic)

data OutputState =
  OutputState {
    builds :: Maybe BuildsState,
    running :: Map Integer Derivation,
    finished :: [PackageDerivation],
    messages :: [Text]
  }
  deriving stock (Eq, Show, Generic)
  deriving anyclass (Default)

data OutputResult =
  OutputResult {
    failedPackages :: Maybe (NonEmpty PackageDerivation),
    unknownMessages :: [Text]
  }
  deriving stock (Eq, Show, Generic)