jbi-0.2.0.0: lib/System/JBI/Environment.hs
{-# 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