hnix/src/Nix/Options.hs

79 lines
2.8 KiB
Haskell

module Nix.Options where
import Data.Text ( Text )
import Data.Time
data Options = Options
{ verbose :: Verbosity
, tracing :: Bool
, thunks :: Bool
, values :: Bool
, scopes :: Bool
, reduce :: Maybe FilePath
, reduceSets :: Bool
, reduceLists :: Bool
, parse :: Bool
, parseOnly :: Bool
, finder :: Bool
, findFile :: Maybe FilePath
, strict :: Bool
, evaluate :: Bool
, json :: Bool
, xml :: Bool
, attr :: Maybe Text
, include :: [FilePath]
, check :: Bool
, readFrom :: Maybe FilePath
, cache :: Bool
, repl :: Bool
, ignoreErrors :: Bool
, expression :: Maybe Text
, arg :: [(Text, Text)]
, argstr :: [(Text, Text)]
, fromFile :: Maybe FilePath
, currentTime :: UTCTime
, filePaths :: [FilePath]
}
deriving Show
defaultOptions :: UTCTime -> Options
defaultOptions current = Options { verbose = ErrorsOnly
, tracing = False
, thunks = False
, values = False
, scopes = False
, reduce = Nothing
, reduceSets = False
, reduceLists = False
, parse = False
, parseOnly = False
, finder = False
, findFile = Nothing
, strict = False
, evaluate = False
, json = False
, xml = False
, attr = Nothing
, include = []
, check = False
, readFrom = Nothing
, cache = False
, repl = False
, ignoreErrors = False
, expression = Nothing
, arg = []
, argstr = []
, fromFile = Nothing
, currentTime = current
, filePaths = []
}
data Verbosity
= ErrorsOnly
| Informational
| Talkative
| Chatty
| DebugInfo
| Vomit
deriving (Eq, Ord, Enum, Bounded, Show)