module Data.EnvironmentHelpers
   ( getEnv
   , getEnvWithDefault
   , showMaybe
   ) where

import           Data.List          (find)
import           Data.Maybe         (fromMaybe)
import qualified System.Environment as E

getEnv :: String -> IO (Maybe String)
getEnv key = do
   env <- E.getEnvironment
   return . fmap snd . find ((==) key . fst) $ env

getEnvWithDefault :: String -> String -> IO String
getEnvWithDefault def = fmap (fromMaybe def) . getEnv

showMaybe :: Show a => Maybe a -> String
showMaybe Nothing  = "[Not Available]"
showMaybe (Just x) = show x