extra-1.5.3: src/System/Environment/Extra.hs
{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-- | Extra functions for "System.Environment". All these functions are available in later GHC versions,
-- but this code works all the way back to GHC 7.2.
module System.Environment.Extra(
module System.Environment,
getExecutablePath, lookupEnv
) where
import System.Environment
#if __GLASGOW_HASKELL__ < 706
import Control.Exception.Extra
import System.IO.Error
import Data.Functor
-- | Alias for 'getProgName' in GHC 7.4 and below, otherwise
-- returns the absolute pathname of the current executable.
getExecutablePath :: IO FilePath
getExecutablePath = getProgName
-- | Return the value of the environment variable var, or Nothing if there is no such value.
lookupEnv :: String -> IO (Maybe String)
lookupEnv x = catchBool isDoesNotExistError (Just <$> getEnv x) (const $ return Nothing)
#endif