module Environment (optional, required) where import qualified System.Environment import qualified Data.ByteString as ByteString import qualified Internal.Shortcut as IO import qualified Interop import qualified Task import qualified Result import qualified String import qualified Maybe import qualified Task import qualified Prelude import Cherry.Prelude {-| -} optional :: String -> Task String (Maybe String) optional name = Interop.fromResult <| do var <- System.Environment.lookupEnv (String.toList name) Prelude.return <| case var of Prelude.Nothing -> Ok Nothing Prelude.Just value -> Ok (Just (String.fromList value)) {-| -} required :: String -> Task String String required name = Interop.fromResult <| do var <- System.Environment.lookupEnv (String.toList name) Prelude.return <| case var of Prelude.Nothing -> Err "Could not read variable." Prelude.Just value -> Ok (String.fromList value)