hercules-ci-agent-0.9.4: hercules-ci-agent-worker/Hercules/Agent/Worker/Env.hs
module Hercules.Agent.Worker.Env where
import Control.Concurrent.STM (TVar)
import Data.IORef (IORef)
import Data.UUID (UUID)
import Hercules.Agent.Worker.HerculesStore (HerculesStore)
import qualified Hercules.Agent.WorkerProtocol.Command.BuildResult as BuildResult
import Hercules.Agent.WorkerProtocol.Event (Event)
import Hercules.CNix (Ref)
import Hercules.CNix.Store (Store, StorePath)
import Protolude
data HerculesState = HerculesState
{ drvsCompleted :: TVar (Map StorePath (UUID, BuildResult.BuildStatus)),
drvBuildAsyncs :: TVar (Map StorePath (Async (UUID, BuildResult.BuildStatus))),
drvRebuildAsyncs :: TVar (Map StorePath (Async (UUID, BuildResult.BuildStatus))),
drvOutputSubstituteAsyncs :: TVar (Map (StorePath, ByteString) (Async StorePath)),
drvsInProgress :: IORef (Set StorePath),
herculesStore :: Ptr (Ref HerculesStore),
wrappedStore :: Store,
shortcutChannel :: Chan (Maybe Event),
extraNixOptions :: [(Text, Text)]
}