magicbane-0.4.0: A web framework that integrates Servant, RIO, EKG, fast-logger, wai-cli…

Safe HaskellTrustworthy
LanguageHaskell2010

Magicbane.Config

Description

Utility functions and reexports for System.Envy, an environment variable config reader.

Synopsis

Documentation

showEnv :: IO () #

Display all environment variables, for convenience

unsetEnvironment' :: ToEnv a => a -> IO (Either String ()) #

Unset Environment using a value of class ToEnv

unsetEnvironment :: EnvList a -> IO (Either String ()) #

Unset Environment from a ToEnv constrained type

setEnvironment' :: ToEnv a => a -> IO (Either String ()) #

Set environment directly using a value of class ToEnv

setEnvironment :: EnvList a -> IO (Either String ()) #

Set environment via a ToEnv constrained type

decodeEnv :: FromEnv a => IO (Either String a) #

Environment retrieval with failure info

makeEnv :: [EnvVar] -> EnvList a #

Smart constructor, environment creation helper.

gFromEnvCustom :: (DefConfig a, Generic a, GFromEnv (Rep a)) => Option -> Parser a #

Meant for specifying a custom Option for environment retrieval

instance FromEnv PGConfig where
  fromEnv = gFromEnvCustom Option { dropPrefixCount = 8, customPrefix = "PG" }

envMaybe #

Arguments

:: Var a 
=> String

Key to look up.

-> Parser (Maybe a)

Return Nothing if variable isn't set.

Environment variable getter returning Maybe

env #

Arguments

:: Var a 
=> String

Key to look up.

-> Parser a

Return a value of this type or throw an error.

Environment variable getter. Fails if the variable is not set or fails to parse.

runEnv :: Parser a -> IO (Either String a) #

For use with Generics, no FromEnv typeclass necessary

getPgConfig :: IO (Either String ConnectInfo)
getPgConfig = runEnv $ gFromEnvCustom defOption

newtype Parser a #

Parser Monad for environment variable retrieval

Constructors

Parser 

Fields

Instances
Monad Parser 
Instance details

Defined in System.Envy

Methods

(>>=) :: Parser a -> (a -> Parser b) -> Parser b #

(>>) :: Parser a -> Parser b -> Parser b #

return :: a -> Parser a #

fail :: String -> Parser a #

Functor Parser 
Instance details

Defined in System.Envy

Methods

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

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

Applicative Parser 
Instance details

Defined in System.Envy

Methods

pure :: a -> Parser a #

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

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

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

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

Alternative Parser 
Instance details

Defined in System.Envy

Methods

empty :: Parser a #

(<|>) :: Parser a -> Parser a -> Parser a #

some :: Parser a -> Parser [a] #

many :: Parser a -> Parser [a] #

MonadPlus Parser 
Instance details

Defined in System.Envy

Methods

mzero :: Parser a #

mplus :: Parser a -> Parser a -> Parser a #

MonadIO Parser 
Instance details

Defined in System.Envy

Methods

liftIO :: IO a -> Parser a #

MonadError String Parser 
Instance details

Defined in System.Envy

Methods

throwError :: String -> Parser a #

catchError :: Parser a -> (String -> Parser a) -> Parser a #

class FromEnv a where #

FromEnv Typeclass w/ Generic default implementation

Methods

fromEnv :: Parser a #

class DefConfig a where #

Type class for objects which have a default configuration.

Minimal complete definition

defConfig

Methods

defConfig :: a #

data Option #

For customizing environment variable generation

Constructors

Option 

Fields

Instances
Show Option 
Instance details

Defined in System.Envy

class ToEnv a where #

Type class for objects which can be converted to a set of environment variable settings.

Minimal complete definition

toEnv

Methods

toEnv :: a -> EnvList a #

Convert an object into a list of environment variable settings.

data EnvList a #

List of environment variables. Captures a "phantom type" which allows the type checker to detect the proper implementation of toEnv to use.

Instances
Show (EnvList a) 
Instance details

Defined in System.Envy

Methods

showsPrec :: Int -> EnvList a -> ShowS #

show :: EnvList a -> String #

showList :: [EnvList a] -> ShowS #

class Typeable a => Var a where #

Class for converting to / from an environment variable

Minimal complete definition

toVar, fromVar

Methods

toVar :: a -> String #

Convert a value into an environment variable.

fromVar :: String -> Maybe a #

Parse an environment variable.

Instances
Var Bool 
Instance details

Defined in System.Envy

Methods

toVar :: Bool -> String #

fromVar :: String -> Maybe Bool #

Var Double 
Instance details

Defined in System.Envy

Var Int 
Instance details

Defined in System.Envy

Methods

toVar :: Int -> String #

fromVar :: String -> Maybe Int #

Var Int8 
Instance details

Defined in System.Envy

Methods

toVar :: Int8 -> String #

fromVar :: String -> Maybe Int8 #

Var Int16 
Instance details

Defined in System.Envy

Var Int32 
Instance details

Defined in System.Envy

Var Int64 
Instance details

Defined in System.Envy

Var Integer 
Instance details

Defined in System.Envy

Var Word8 
Instance details

Defined in System.Envy

Var Word16 
Instance details

Defined in System.Envy

Var Word32 
Instance details

Defined in System.Envy

Var Word64 
Instance details

Defined in System.Envy

Var () 
Instance details

Defined in System.Envy

Methods

toVar :: () -> String #

fromVar :: String -> Maybe () #

Var String 
Instance details

Defined in System.Envy

Var ByteString 
Instance details

Defined in System.Envy

Var ByteString 
Instance details

Defined in System.Envy

Var Text 
Instance details

Defined in System.Envy

Methods

toVar :: Text -> String #

fromVar :: String -> Maybe Text #

Var UTCTime 
Instance details

Defined in System.Envy

Var Text 
Instance details

Defined in System.Envy

Methods

toVar :: Text -> String #

fromVar :: String -> Maybe Text #

Var Day 
Instance details

Defined in System.Envy

Methods

toVar :: Day -> String #

fromVar :: String -> Maybe Day #

Var a => Var (Maybe a) 
Instance details

Defined in System.Envy

Methods

toVar :: Maybe a -> String #

fromVar :: String -> Maybe (Maybe a) #

withEnvConfig :: FromEnv α => (α -> IO ()) -> IO () Source #

Reads an Envy configuration from the env variables and launches the given action if successful. (Does environment variable reading ever fail in practice? Probably not.)