-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Load environment variables from a file.
--   
--   Parse a .env file and load any declared variables into the current
--   process's environment. This allows for a .env file to specify
--   development-friendly defaults for configuration values normally set in
--   the deployment environment.
@package load-env
@version 0.2.1.0

module LoadEnv.Parse
type Environment = [Variable]
type Variable = (String, String)
parseEnvironment :: Parser Environment
parseVariable :: Parser Variable

-- | This is effectively a port of dotenv, whose README explains it best:
--   
--   
--   Storing configuration in the environment is one of the tenets of a
--   twelve-factor app. Anything that is likely to change between deployment
--   environments–such as resource handles for databases or credentials for
--   external services–should be extracted from the code into environment
--   variables.
--   
--   But it is not always practical to set environment variables on development
--   machines or continuous integration servers where multiple projects are run.
--   dotenv loads variables from a .env file into ENV when the environment is
--   bootstrapped.
--   
--   
--   https://github.com/bkeepers/dotenv
--   
--   This library exposes functions for doing just that.
module LoadEnv

-- | 
--   loadEnvFrom ".env"
--   
loadEnv :: IO ()

-- | Parse the given file and set variables in the process's environment
--   
--   Variables can be declared in the following form:
--   
--   
--   FOO=bar
--   FOO="bar"
--   FOO='bar'
--   
--   
--   Declarations may optionally be preceded by "export ", which
--   will be ignored. Trailing whitespace is ignored. Quotes inside quoted
--   values or spaces in unquoted values must be escaped with a backlash.
--   Invalid lines are silently ignored.
--   
--   NOTE: If the file-name is relative, the directory tree will be
--   traversed up to / looking for the file in each parent. Use
--   loadEnvFromAbsolute to avoid this.
loadEnvFrom :: FilePath -> IO ()

-- | loadEnvFrom, but don't traverse up the directory tree
loadEnvFromAbsolute :: FilePath -> IO ()
