-- | Unlifted "System.Environment". -- -- @since 0.2.5.0 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 -- | Lifted 'E.getArgs'. -- -- @since 0.2.5.0 {-# INLINE getArgs #-} getArgs :: MonadIO m => m [String] getArgs = liftIO E.getArgs -- | Lifted 'E.getProgName'. -- -- @since 0.2.5.0 {-# INLINE getProgName #-} getProgName :: MonadIO m => m String getProgName = liftIO E.getProgName -- | Lifted 'E.getExecutablePath'. -- -- @since 0.2.5.0 {-# INLINE getExecutablePath #-} getExecutablePath :: MonadIO m => m FilePath getExecutablePath = liftIO E.getExecutablePath -- | Lifted 'E.getEnv'. -- -- @since 0.2.5.0 {-# INLINE getEnv #-} getEnv :: MonadIO m => String -> m String getEnv = liftIO . E.getEnv -- | Lifted 'E.lookupEnv'. -- -- @since 0.2.5.0 {-# INLINE lookupEnv #-} lookupEnv :: MonadIO m => String -> m (Maybe String) lookupEnv = liftIO . E.lookupEnv -- | Lifted 'E.setEnv'. -- -- @since 0.2.5.0 {-# INLINE setEnv #-} setEnv :: MonadIO m => String -> String -> m () setEnv key_ value_ = liftIO (E.setEnv key_ value_) -- | Lifted 'E.unsetEnv'. -- -- @since 0.2.5.0 {-# INLINE unsetEnv #-} unsetEnv :: MonadIO m => String -> m () unsetEnv = liftIO . E.unsetEnv -- | Unlifted 'E.withArgs'. -- -- @since 0.2.5.0 {-# INLINE withArgs #-} withArgs :: MonadUnliftIO m => [String] -> m a -> m a withArgs xs act = withRunInIO (\u -> E.withArgs xs (u act)) -- | Unlifted 'E.withProgName'. -- -- @since 0.2.5.0 {-# INLINE withProgName #-} withProgName :: MonadUnliftIO m => String -> m a -> m a withProgName nm act = withRunInIO (\u -> E.withProgName nm (u act)) -- | Lifted 'E.getEnvironment'. -- -- @since 0.2.5.0 {-# INLINE getEnvironment #-} getEnvironment :: MonadIO m => m [(String, String)] getEnvironment = liftIO E.getEnvironment