{-# LANGUAGE DeriveAnyClass, DeriveGeneric #-} {- | Module : System.JBI.Environment Description : Build tool agnostic environment Copyright : (c) Ivan Lazar Miljenovic License : MIT Maintainer : Ivan.Miljenovic@gmail.com This is used by build tools to help them determine how they should run (as opposed to configuration environment which is their actual working directories, etc.). -} module System.JBI.Environment ( Env(..) , Config(..) , ToolEnv(..) , toolEnv ) where import System.JBI.Commands.Nix import System.JBI.Commands.Tool import System.JBI.Config import Data.Aeson (ToJSON) import GHC.Generics (Generic) -------------------------------------------------------------------------------- data Env = Env { envConfig :: !Config , envTools :: !ToolEnv } deriving (Eq, Show, Read) -------------------------------------------------------------------------------- data ToolEnv = ToolEnv { nix :: NixSupport , ghc :: Maybe (Installed GHC) } deriving (Eq, Show, Read, Generic, ToJSON) toolEnv :: Config -> IO ToolEnv toolEnv cfg = ToolEnv <$> findNixSupport cfg <*> commandInformation cfg