{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}

module HWM.Core.Options
  ( Options (..),
    defaultOptions,
    askOptions,
  )
where

import HWM.Core.Has (Has (..))
import Relude

askOptions :: (MonadReader env m, Has env Options) => m Options
askOptions :: forall env (m :: * -> *).
(MonadReader env m, Has env Options) =>
m Options
askOptions = (env -> Options) -> m Options
forall r (m :: * -> *) a. MonadReader r m => (r -> a) -> m a
asks env -> Options
forall env a. Has env a => env -> a
obtain

data Options = Options
  { Options -> FilePath
hie :: FilePath,
    Options -> FilePath
hwm :: FilePath,
    Options -> FilePath
stack :: FilePath,
    Options -> Bool
quiet :: Bool
  }

defaultOptions :: Options
defaultOptions :: Options
defaultOptions =
  Options
    { hwm :: FilePath
hwm = FilePath
"./hwm.yaml",
      hie :: FilePath
hie = FilePath
"./hie.yaml",
      stack :: FilePath
stack = FilePath
"./stack.yaml",
      quiet :: Bool
quiet = Bool
False
    }