h&*|(>      !"#$%&'()*+,-./012345678 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?JirisException thrown by .iris?Can't find a browser application. Stores the current OS inside.irisOpen a given file in a browser. The function has the following algorithm: Check the BROWSER environment variable5If it's not set, try to guess browser depending on OS!If unsuccsessful, print a messageThrows:  if can't find a browser.miris!Execute a command with arguments.irisirisiris(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?[irisA CLI option parser yields a boolean value if a file needs to be open in a browser.Use . to open the file of your choice in a browser.irisA CLI option parser for a n& that needs to be open with a browser.Use & to open the passed file in a browser.irisFlag descriptionirisFlag description(c) 2023 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=? irisData type that tells whether the user wants the colouring option enabled, disabled or autodetected.See   for the parser of this option. iris iris iris irisA CLI option parser for the desired coloured output mode in the terminal. It parses --colour and  --no-colour- flags explicitly. Otherwise, it defaults to  . irisirisirisirisiris  (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=? iris7Datatype for specifying if the terminal is interactive.irisirisirisA CLI option parser for switching to non-interactive mode if the  --no-input flag is passed.irisForces non interactive mode when the terminal is not interactiveUse this function to check whether you can get input from the terminal:  requestedInteractiveMode If the terminal is non interactive i.e. the program is run in a pipe, interactive mode is set to false no matter whatirisiris(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov InternalPortable Safe-Inferred"%&(/25;=? irisWrapper around cmd" with additional predefined fields(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=? iris iris!iris"iris#iris$iris !"#$ !"$#2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=? %irisData type that tells whether the colouring is enabled or disabled. Its value is detected automatically on application start and stored in  .&iris'iris(irisReturns % of a o ignoring environment and CLI options. You can use this function on output o4s to find out whether they support colouring or not.Use a function like this to check whether you can print with colour to terminal: (  )iris+This function performs a full check of the o colouring support, env variables and user-specified settings to detect whether the given handle supports colouring.Per CLI Guidelines, the algorithm for detecting the colouring support is the following:__Disable color if your program is not in a terminal or the user requested it. These things should disable colors:__stdout or stderr is not an interactive terminal (a TTY). It@s best to individually check@if you@re piping stdout to another program, it@s still useful to get colors on stderr.The NO_COLOR environment variable is set.The TERM$ environment variable has the value dumb.The user passes the option  --no-color.You may also want to add a MYAPP_NO_COLOR environment variable in case users want to disable color specifically for your program.B Iris performs this check on the application start automatically so you don't need to call this function manually.*iris+iris,iris-iris.iris)irisA terminal handle (e.g. )iris User settingsirisApplication name%&'()%&')((c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?@/irisThe Iris settings type.Use 7 to specify only used fields.1iris2iris3iris4iris5iris6iris7irisDefault Iris app settings. /01234567 /01234567 (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/235;=?8iris88 (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/235;=? 9irisCLI application environment. It contains default settings for every CLI app and parameter"Has the following type parameters:cmd: application commandsappEnv(: application-specific environment; use ()+ if you don't have custom app environment;iris<iris=iris>iris?iris@irisAiris(Get a field from the global environment 9.Biris9Get a field from custom application-specific environment appEnv. 9:;<=>?@AB 9:;<=>?@AB (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?CirisPrint p to + by providing a custom formatting function.$This works especially well with the  colourista package: C (Colourista.formatWith [Colourista.bold, Colourista.green]) "my message" DirisPrint p to q+ by providing a custom formatting function.$This works especially well with the  colourista package: D (Colourista.formatWith [Colourista.bold, Colourista.green]) "my message" EirisPrint p to  by providing a custom formatting function. Doesn't breaks output line that differs from C$This works especially well with the  colourista package: E (Colourista.formatWith [Colourista.bold, Colourista.green]) "my message" FirisPrint p to q by providing a custom formatting function. Doesn't breaks output line that differs from D$This works especially well with the  colourista package: F (Colourista.formatWith [Colourista.bold, Colourista.green]) "my message" CDEFCDEF(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?7 %&'()CDEF(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=? ! "#$8 (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?# Giris$Main monad for your CLI application.The type variables are:cmd&: the data type for your CLI argumentsappEnv7: custom environment for your application (can be just () if you don't need one)a&: the value inside the monadic contextJirisRun application with settings.-This function is supposed to be used in your main function: app :: App () app = ... your main application ... main :: IO () main = J mySettings (unApp app) Kiris Run application by constructing 9 settings manually.LirisMirisNirisOirisPirisQirisGHIJKGHIJK (c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?'2RirisAn exception thrown by d( when there's an error requiring a tool.TirisUirisVirisWirisXirisYirisZiris\iris]iris^iris`irisairisbiriscirisdirisUse 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.  Iris.  >>= \case% Download url -> do Iris.d ["curl"] runDownload url Evaluate hs -> do Iris.d) ["ghc", "cabal"] runEvaluate hs Throws: R1 if can't find a tool or if it has wrong version.eirisfirisgirishirisiirisjiriskirislirisRSTUVWXYZ[\]^_`abcdd^_`aZ[\]bWXYTUVRSc(c) 2022 Dmitrii KovanikovMPL-2.0'Dmitrii Kovanikov  ExperimentalPortable Safe-Inferred"%&(/25;=?'! "#$%&'()/6543201789?>=<:;@ABCDEFGHIJKRSTUVWXYZ][\^a_`bcd !"#$%&'()*+,-./001234456789:;<=>?@ABCDDEFGHIJK L    M N O P Q  R S T U V W W X Y Z [ \ ] ^ _ ` a a b c d e b f g g h i j j k l m n o p q r s t u v wxyz{y|}~y#iris-0.1.0.0-64ioutTZpuhGyqejzrZQpS Iris.BrowseIris.Cli.BrowseIris.Cli.ColourIris.Cli.InteractiveIris.Cli.InternalIris.Cli.VersionIris.Colour.Mode Iris.SettingsIris.Cli.ParserInfoIris.EnvIris.Colour.FormattingIris.App Iris.Tool openInBrowserCliEnv System.IOstdoutstderr Iris.ColourIris.Cli asksCliEnv cliEnvCmdIrisBrowseExceptionBrowserNotFoundException$fShowBrowseException$fEqBrowseException$fExceptionBrowseExceptionbrowseP browseFileP ColourOptionAlwaysNeverAuto colourOptionP$fShowColourOption$fEqColourOption$fOrdColourOption$fEnumColourOption$fBoundedColourOptionInteractiveMode InteractiveNonInteractiveinteractiveModePhandleInteractiveMode$fShowInteractiveMode$fEqInteractiveModeCmdcmdInteractiveModecmdColourOptioncmdCmdVersionSettingsversionSettingsVersionversionSettingsMkDescdefaultVersionSettingsmkVersionParser fullVersionP ColourMode DisableColour EnableColourhandleColourModedetectColourMode$fShowColourMode$fEqColourMode$fOrdColourMode$fEnumColourMode$fBoundedColourModeCliEnvSettingscliEnvSettingsCmdParsercliEnvSettingsAppEnvcliEnvSettingsHeaderDesccliEnvSettingsProgDesccliEnvSettingsVersionSettingscliEnvSettingsAppNamedefaultCliEnvSettings cmdParserInfocliEnvStdoutColourModecliEnvStderrColourMode cliEnvAppEnvcliEnvInteractiveModemkCliEnv asksAppEnvputStdoutColouredLnputStderrColouredLnputStdoutColouredputStderrColouredCliAppunCliApp runCliApprunCliAppManually$fFunctorCliApp$fApplicativeCliApp $fMonadCliApp$fMonadIOCliApp$fMonadReaderCliEnvCliApp$fMonadUnliftIOCliAppToolCheckExceptionToolCheckError ToolNotFoundToolWrongVersionToolCheckResultToolOk ToolSelectortoolSelectorFunctiontoolSelectorVersionArgTooltoolName toolSelectordefaultToolSelector checkToolneed$fIsStringTool$fShowToolCheckException$fEqToolCheckException$fExceptionToolCheckException$fShowToolCheckResult$fEqToolCheckResult$fShowToolCheckError$fEqToolCheckError runCommandbaseGHC.IOFilePathGHC.IO.Handle.TypesHandle text-1.2.5.0Data.Text.InternalTextGHC.IO.StdHandles