EVP-0: Environment Variable Parser
Safe HaskellSafe-Inferred
LanguageGHC2021

EVP

Synopsis

Documentation

data Error Source #

Instances

Instances details
Show Error Source # 
Instance details

Defined in EVP

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

Parsers

string :: IsString a => Name -> Scan a Source #

Obtain the environment variable.

yaml :: (Show a, FromJSON a) => Name -> Scan a Source #

Parse the environment variable as a YAML value.

parse :: Show a => Name -> (String -> Either String a) -> Scan a Source #

secret :: Scan a -> Scan a Source #

Disable logging of parsed values.

Providing a default value

yamlDefault :: (Show a, FromJSON a) => Name -> a -> Scan a Source #

Parse the environment variable as a YAML value.

parseDefault :: Show a => Name -> a -> (String -> Either String a) -> Scan a Source #

Runner

data Settings Source #

Constructors

Settings 

Fields

Instances

Instances details
Default Settings Source # 
Instance details

Defined in EVP

Methods

def :: Settings #

def :: Default a => a #

scan :: Scan a -> IO a Source #

enumerate :: Scan a -> [Name] Source #

Enumerate the names of the variables it would parse.

Logger

assumePrefix :: String -> Name -> Maybe (IO ()) Source #

Custom logging function for unusedLogger. assumePrefix p prints a warning for each unused environment variable prefixed by p.

obsolete :: [Name] -> Name -> Maybe (IO ()) Source #

obsolete names prints a warning if any of the names is set but not used.

Internal

data Scan a where Source #

Constructors

Pure :: a -> Scan a 
Var :: Name -> (Maybe String -> Either Error (String, a)) -> Scan (a -> b) -> Scan b 

Instances

Instances details
Applicative Scan Source # 
Instance details

Defined in EVP

Methods

pure :: a -> Scan a #

(<*>) :: Scan (a -> b) -> Scan a -> Scan b #

liftA2 :: (a -> b -> c) -> Scan a -> Scan b -> Scan c #

(*>) :: Scan a -> Scan b -> Scan b #

(<*) :: Scan a -> Scan b -> Scan a #

Functor Scan Source # 
Instance details

Defined in EVP

Methods

fmap :: (a -> b) -> Scan a -> Scan b #

(<$) :: a -> Scan b -> Scan a #