1-- | Unlifted "System.Environment". 2-- 3-- @since 0.2.5.0 4module UnliftIO.Environment 5 ( getArgs 6 , getProgName 7 , getExecutablePath 8 , getEnv 9 , lookupEnv 10 , setEnv 11 , unsetEnv 12 , withArgs 13 , withProgName 14 , getEnvironment 15 ) where 16 17import Control.Monad.IO.Unlift 18import qualified System.Environment as E 19 20-- | Lifted 'E.getArgs'. 21-- 22-- @since 0.2.5.0 23{-# INLINE getArgs #-} 24getArgs :: MonadIO m => m [String] 25getArgs = liftIO E.getArgs 26 27-- | Lifted 'E.getProgName'. 28-- 29-- @since 0.2.5.0 30{-# INLINE getProgName #-} 31getProgName :: MonadIO m => m String 32getProgName = liftIO E.getProgName 33 34-- | Lifted 'E.getExecutablePath'. 35-- 36-- @since 0.2.5.0 37{-# INLINE getExecutablePath #-} 38getExecutablePath :: MonadIO m => m FilePath 39getExecutablePath = liftIO E.getExecutablePath 40 41-- | Lifted 'E.getEnv'. 42-- 43-- @since 0.2.5.0 44{-# INLINE getEnv #-} 45getEnv :: MonadIO m => String -> m String 46getEnv = liftIO . E.getEnv 47 48-- | Lifted 'E.lookupEnv'. 49-- 50-- @since 0.2.5.0 51{-# INLINE lookupEnv #-} 52lookupEnv :: MonadIO m => String -> m (Maybe String) 53lookupEnv = liftIO . E.lookupEnv 54 55-- | Lifted 'E.setEnv'. 56-- 57-- @since 0.2.5.0 58{-# INLINE setEnv #-} 59setEnv :: MonadIO m => String -> String -> m () 60setEnv key_ value_ = liftIO (E.setEnv key_ value_) 61 62-- | Lifted 'E.unsetEnv'. 63-- 64-- @since 0.2.5.0 65{-# INLINE unsetEnv #-} 66unsetEnv :: MonadIO m => String -> m () 67unsetEnv = liftIO . E.unsetEnv 68 69-- | Unlifted 'E.withArgs'. 70-- 71-- @since 0.2.5.0 72{-# INLINE withArgs #-} 73withArgs :: MonadUnliftIO m => [String] -> m a -> m a 74withArgs xs act = withRunInIO (\u -> E.withArgs xs (u act)) 75 76-- | Unlifted 'E.withProgName'. 77-- 78-- @since 0.2.5.0 79{-# INLINE withProgName #-} 80withProgName :: MonadUnliftIO m => String -> m a -> m a 81withProgName nm act = withRunInIO (\u -> E.withProgName nm (u act)) 82 83-- | Lifted 'E.getEnvironment'. 84-- 85-- @since 0.2.5.0 86{-# INLINE getEnvironment #-} 87getEnvironment :: MonadIO m => m [(String, String)] 88getEnvironment = liftIO E.getEnvironment 89