xdg-basedir-compliant-1.2.0: src/System/XDG/Env.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TemplateHaskell #-}
module System.XDG.Env where
import Polysemy
import System.Environment (lookupEnv)
data Env m a where
GetEnv :: String -> Env m (Maybe String)
makeSem ''Env
type EnvList = [(String, String)]
runEnvList :: EnvList -> InterpreterFor Env r
runEnvList envs = interpret (\(GetEnv name) -> pure $ lookup name envs)
runEnvIO :: Member (Embed IO) r => InterpreterFor Env r
runEnvIO = interpret (\(GetEnv name) -> embed $ lookupEnv name)