module UnliftIO.Environment
( getArgs
, getProgName
, getExecutablePath
, getEnv
, lookupEnv
, setEnv
, unsetEnv
, withArgs
, withProgName
, getEnvironment
) where
import Control.Monad.IO.Unlift
import qualified System.Environment as E
getArgs :: MonadIO m => m [String]
getArgs = liftIO E.getArgs
getProgName :: MonadIO m => m String
getProgName = liftIO E.getProgName
getExecutablePath :: MonadIO m => m FilePath
getExecutablePath = liftIO E.getExecutablePath
getEnv :: MonadIO m => String -> m String
getEnv = liftIO . E.getEnv
lookupEnv :: MonadIO m => String -> m (Maybe String)
lookupEnv = liftIO . E.lookupEnv
setEnv :: MonadIO m => String -> String -> m ()
setEnv key_ value_ = liftIO (E.setEnv key_ value_)
unsetEnv :: MonadIO m => String -> m ()
unsetEnv = liftIO . E.unsetEnv
withArgs :: MonadUnliftIO m => [String] -> m a -> m a
withArgs xs act = withRunInIO (\u -> E.withArgs xs (u act))
withProgName :: MonadUnliftIO m => String -> m a -> m a
withProgName nm act = withRunInIO (\u -> E.withProgName nm (u act))
getEnvironment :: MonadIO m => m [(String, String)]
getEnvironment = liftIO E.getEnvironment