Copyright | (c) 2022 Dmitrii Kovanikov |
---|---|
License | MPL-2.0 |
Maintainer | Dmitrii Kovanikov <kovanikov@gmail.com> |
Stability | Experimental |
Portability | Portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Utilities to check required tools and their minimal version for a CLI app.
Sometimes, your CLI application
Since: 0.0.0.0
Synopsis
- need :: MonadIO m => [Tool] -> m ()
- data Tool = Tool {}
- data ToolSelector = ToolSelector {}
- defaultToolSelector :: ToolSelector
- data ToolCheckResult
- data ToolCheckError
- newtype ToolCheckException = ToolCheckException ToolCheckError
- checkTool :: Tool -> IO ToolCheckResult
Requiring an executable
need :: MonadIO m => [Tool] -> m () Source #
Use this function to require specific CLI tools for your CLI application.
The function can be used in the beginning of each command in the following way:
app :: App () app = Iris.asksCliEnv
Iris.cliEnvCmd
>>= \case Download url -> do Iris.need
["curl"] runDownload url Evaluate hs -> do Iris.need
["ghc", "cabal"] runEvaluate hs
Throws: ToolCheckException
if can't find a tool or if it has wrong version.
Since: 0.0.0.0
Since: 0.0.0.0
Tool | |
|
data ToolSelector Source #
Since: 0.0.0.0
ToolSelector | |
|
defaultToolSelector :: ToolSelector Source #
Since: 0.0.0.0
Tool requirements check
data ToolCheckResult Source #
Since: 0.0.0.0
ToolCheckError ToolCheckError | Since: 0.1.0.0 |
ToolOk | Since: 0.0.0.0 |
Instances
Show ToolCheckResult Source # | Since: 0.0.0.0 |
Defined in Iris.Tool showsPrec :: Int -> ToolCheckResult -> ShowS # show :: ToolCheckResult -> String # showList :: [ToolCheckResult] -> ShowS # | |
Eq ToolCheckResult Source # | Since: 0.0.0.0 |
Defined in Iris.Tool (==) :: ToolCheckResult -> ToolCheckResult -> Bool # (/=) :: ToolCheckResult -> ToolCheckResult -> Bool # |
data ToolCheckError Source #
Since: 0.1.0.0
ToolNotFound Text | Since: 0.1.0.0 |
ToolWrongVersion Text | Since: 0.1.0.0 |
Instances
Show ToolCheckError Source # | Since: 0.1.0.0 |
Defined in Iris.Tool showsPrec :: Int -> ToolCheckError -> ShowS # show :: ToolCheckError -> String # showList :: [ToolCheckError] -> ShowS # | |
Eq ToolCheckError Source # | Since: 0.1.0.0 |
Defined in Iris.Tool (==) :: ToolCheckError -> ToolCheckError -> Bool # (/=) :: ToolCheckError -> ToolCheckError -> Bool # |
newtype ToolCheckException Source #
An exception thrown by need
when there's an error requiring a tool.
Since: 0.1.0.0
Instances
Exception ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool | |
Show ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool showsPrec :: Int -> ToolCheckException -> ShowS # show :: ToolCheckException -> String # showList :: [ToolCheckException] -> ShowS # | |
Eq ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool (==) :: ToolCheckException -> ToolCheckException -> Bool # (/=) :: ToolCheckException -> ToolCheckException -> Bool # |