-- 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 -- --
-- guardSet var === guardPredicate var (const True) ---- --
-- >>> 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 -- --
-- guardExpected var expected === guardPredicate var (\a b -> fmap toLower a == fmap toLower b) ---- --
-- >>> 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 -- --
-- >>> 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 -- --
-- guardSet var === guardPredicate var (const True) ---- --
-- >>> 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 -- --
-- guardExpected var expected === guardPredicate var (\a b -> fmap toLower a == fmap toLower b) ---- --
-- >>> 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 -- --
-- >>> 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 ()