| 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 |
Iris.Tool
Description
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.asksCliEnvIris.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
Constructors
| Tool | |
Fields
| |
data ToolSelector Source #
Since: 0.0.0.0
Constructors
| ToolSelector | |
Fields
| |
defaultToolSelector :: ToolSelector Source #
Since: 0.0.0.0
Tool requirements check
data ToolCheckResult Source #
Since: 0.0.0.0
Constructors
| 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 Methods showsPrec :: Int -> ToolCheckResult -> ShowS # show :: ToolCheckResult -> String # showList :: [ToolCheckResult] -> ShowS # | |
| Eq ToolCheckResult Source # | Since: 0.0.0.0 |
Defined in Iris.Tool Methods (==) :: ToolCheckResult -> ToolCheckResult -> Bool # (/=) :: ToolCheckResult -> ToolCheckResult -> Bool # | |
data ToolCheckError Source #
Since: 0.1.0.0
Constructors
| 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 Methods showsPrec :: Int -> ToolCheckError -> ShowS # show :: ToolCheckError -> String # showList :: [ToolCheckError] -> ShowS # | |
| Eq ToolCheckError Source # | Since: 0.1.0.0 |
Defined in Iris.Tool Methods (==) :: 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
Constructors
| ToolCheckException ToolCheckError |
Instances
| Exception ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool Methods toException :: ToolCheckException -> SomeException # fromException :: SomeException -> Maybe ToolCheckException # | |
| Show ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool Methods showsPrec :: Int -> ToolCheckException -> ShowS # show :: ToolCheckException -> String # showList :: [ToolCheckException] -> ShowS # | |
| Eq ToolCheckException Source # | Since: 0.1.0.0 |
Defined in Iris.Tool Methods (==) :: ToolCheckException -> ToolCheckException -> Bool # (/=) :: ToolCheckException -> ToolCheckException -> Bool # | |