-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Conditionally running IO actions based on environment variables. -- -- This package provides functions for validating presence / contents of -- environment variables, and conditionally running IO actions based on -- the result. @package env-guard @version 0.1 -- | Functions for conditionally running IO actions based on an -- environment variable. module System.Environment.Guard -- | guardSet var io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
-- --
--   guardSet var === guardPredicate var (const True)
--   
-- --

Examples

-- --
--   >>> guardSet "NOT_SET" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "SET" "foo"
--   
--   >>> guardSet "SET" (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardSet :: String -> IO a -> IO (Maybe a) -- | Variant of guardSet that ignores the return value. guardSet_ :: String -> IO a -> IO () -- | guardExpected var expected io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
  3. var's value equals expected. This is -- case-insensitive.
  4. --
-- --
--   guardExpected var expected === guardPredicate var (\a b -> fmap toLower a == fmap toLower b)
--   
-- --

Examples

-- --
--   >>> guardExpected "NOT_SET" "val" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WRONG_VAL" "good_val"
--   
--   >>> guardExpected "WRONG_VAL" "bad_val" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WILL_RUN" "val"
--   
--   >>> guardExpected "WILL_RUN" "VAL" (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardExpected :: String -> String -> IO a -> IO (Maybe a) -- | Variant of guardExpected_ that ignores the return value. guardExpected_ :: String -> String -> IO a -> IO () -- | This is the most general way to check an environment variable. -- guardPredicate var p io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
  3. var's value satisfies predicate p.
  4. --
-- --

Examples

-- --
--   >>> guardPredicate "NOT_SET" (const True) (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "CASE_WRONG" "VAL"
--   
--   >>> guardPredicate "CASE_WRONG" (== "val") (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WILL_RUN" "VAL"
--   
--   >>> guardPredicate "WILL_RUN" (== "VAL") (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardPredicate :: String -> (String -> Bool) -> IO a -> IO (Maybe a) -- | Variant of guardPredicate that ignores the return value. guardPredicate_ :: String -> (String -> Bool) -> IO a -> IO () -- | System.Environment.Guard for MonadIO. module System.Environment.Guard.Lifted -- | guardSet var io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
-- --
--   guardSet var === guardPredicate var (const True)
--   
-- --

Examples

-- --
--   >>> guardSet "NOT_SET" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "SET" "foo"
--   
--   >>> guardSet "SET" (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardSet :: MonadIO m => String -> m a -> m (Maybe a) -- | Variant of guardSet that ignores the return value. guardSet_ :: MonadIO m => String -> m a -> m () -- | guardExpected var expected io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
  3. var's value equals expected. This is -- case-insensitive.
  4. --
-- --
--   guardExpected var expected === guardPredicate var (\a b -> fmap toLower a == fmap toLower b)
--   
-- --

Examples

-- --
--   >>> guardExpected "NOT_SET" "val" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WRONG_VAL" "good_val"
--   
--   >>> guardExpected "WRONG_VAL" "bad_val" (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WILL_RUN" "val"
--   
--   >>> guardExpected "WILL_RUN" "VAL" (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardExpected :: MonadIO m => String -> String -> m a -> m (Maybe a) -- | Variant of guardExpected_ that ignores the return value. guardExpected_ :: MonadIO m => String -> String -> m a -> m () -- | This is the most general way to check an environment variable. -- guardPredicate var p io runs io iff -- --
    --
  1. The environment variable var is set.
  2. --
  3. var's value satisfies predicate p.
  4. --
-- --

Examples

-- --
--   >>> guardPredicate "NOT_SET" (const True) (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "CASE_WRONG" "VAL"
--   
--   >>> guardPredicate "CASE_WRONG" (== "val") (putStrLn "ran io" $> True)
--   Nothing
--   
-- --
--   >>> setEnv "WILL_RUN" "VAL"
--   
--   >>> guardPredicate "WILL_RUN" (== "VAL") (putStrLn "ran io" $> True)
--   ran io
--   Just True
--   
guardPredicate :: MonadIO m => String -> (String -> Bool) -> m a -> m (Maybe a) -- | Variant of guardPredicate that ignores the return value. guardPredicate_ :: MonadIO m => String -> (String -> Bool) -> m a -> m ()