{-| Description : Derivation types Maintainer : srk |-} module System.Nix.Derivation where import Data.Text (Text) import Data.HashMap.Strict (HashMap) import Data.HashSet (HashSet) import System.Nix.Path type OutputName = Text newtype DerivationInputs = DerivationInputs { _unDerivationInputs :: HashMap Path (HashSet OutputName) } deriving (Eq, Ord, Show) data Derivation = Derivation { _derivationInputs :: DerivationInputs , _derivationOutputs :: !(HashMap OutputName Path) -- | Inputs that are sources , _derivationInputSrcs :: !PathSet , _derivationPlatform :: !Text -- | Path to builder , _derivationBuilder :: !Path , _derivationArgs :: ![Text] , _derivationEnv :: ![HashMap Text Text] } deriving (Eq, Ord, Show)