packages feed

hercules-ci-agent-0.8.0: hercules-ci-agent/Hercules/Agent/Cachix/Env.hs

module Hercules.Agent.Cachix.Env where

import qualified Cachix.Client.Push as Cachix
import Hercules.CNix.Store (Store)
import Hercules.Formats.CachixCache (CachixCache)
import Protolude
import Servant.Client (ClientEnv)

data PushCache = PushCache
  { pushCacheName :: Text,
    pushCacheSecret :: Cachix.PushSecret
  }

data Env = Env
  { pushCaches :: Map Text PushCache,
    cacheKeys :: Map Text CachixCache,
    netrcLines :: [Text],
    nixStore :: Store,
    clientEnv :: ClientEnv
  }

class HasEnv env where
  getEnv :: env -> Env

instance HasEnv Env where
  getEnv = identity