nMf|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST U V W X Y Z [ \ ] ^ _ ` 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 { Safe|||None 9;<=?OT Process IO is based on the }! class from the ListLike package:Read from a handle, returning a lazy list of the monoid a.#Like  F, but with generalized input and output type. Aside from the usual text-like types, the output can be a list of Chunk a. This lets you process the chunks received from stdout and stderr lazil, in the order they are received, as well as the exit code. Utilities to handle Chunks are provided in System.Process.ListLike.&<Like readCreateProcessStrict, but the output is read lazily.~*Helper function for readCreateProcessLazy.Write and flush process input, closing the handle when done. Catch and ignore Resource Vanished exceptions, they just mean the process exited before all of its output was read.Wrapper for a process that provides a handler for the ResourceVanished exception. This is frequently an exception we wish to ignore, because many processes will deliberately exit before they have read all of their input.'!System.Process utility functions.)A process usually has one  at the end of its output, this . instance lets us build the type returned by  .+Passing this to & as the maker argument allows you to set the buffer mode of the process stdout and stderr handles just after the handles are created. These are set to BlockBuffering by default, but for running console commands LineBuffering is probably what you want.,$This is the usual maker argument to &. !"#command to run any argumentsstandard inputexitcode, stdout, stderr$command and arguments to runstandard inputexitcode, stdout, stderr%&~'()*+, !"#$%&'( !"#$%&(' !"#$%&~'()*+,None:<=-0Specialized version for backwards compatibility./Like  , but using -command to run any argumentsstandard inputexitcode, stdout, stderr.command and arguments to runstandard inputexitcode, stdout, stderr/0-.0/-.-./0None<=10Specialized version for backwards compatibility.3Like  , but using Text1command to run any argumentsstandard inputexitcode, stdout, stderr2command and arguments to runstandard inputexitcode, stdout, stderr312312123None<=40Specialized version for backwards compatibility.6Like  , but using 4command to run any argumentsstandard inputexitcode, stdout, stderr5command and arguments to runstandard inputexitcode, stdout, stderr674576454567None<=80Specialized version for backwards compatibility.:Like , but specialized for Text8command to run any argumentsstandard inputexitcode, stdout, stderr9command and arguments to runstandard inputexitcode, stdout, stderr:89:8989:None<=;0Specialized version for backwards compatibility.=Like  , but using ;command to run any argumentsstandard inputexitcode, stdout, stderr<command and arguments to runstandard inputexitcode, stdout, stderr=>;<>=;<;<=>None<=?0Specialized version for backwards compatibility.ALike  , but using ?command to run any argumentsstandard inputexitcode, stdout, stderr@command and arguments to runstandard inputexitcode, stdout, stderrAB?@BA?@?@ABNone9;<=?CThis type is a concrete representation of the methods of class ProcessOutput. If you take your process output as this type you could, for example, echo all the output and then use collectOutput below to convert it to any other instance of ProcessOutput.D<This will always come first, before any output or exit code.H:Note that the instances below do not use this constructor.KTurn a  [Chunk a] into any other instance of  ProcessOutput. I usually use this after processing the chunk list to turn it into the (ExitCode, String, String) type returned by readProcessWithExitCode.LYSend Stdout chunks to stdout and Stderr chunks to stderr. Returns input list unmodified.QLike   that takes a .CDEFGHIJ,called when the process handle becomes knownstdout handlerstderr handlerexception handlerexit code handlerKLMNOPQR3  !"#$%&'(CHGDEFIJKLM3 !"I%&$#'(CDEFGHKJLM  CDEFGHIJKLMNOPQR None 9:;<=LOTAThe monad state, are we at the beginning of a line or the middle?U&Output one dot per n output charactersVJsend process stdout to console stdout and process stderr to console stderrWOutput with prefixesX No output[8This is the state record that controls the output style.]Overall style of output^Prefix for lines of stdout_Prefix for lines of stderr`Echo command as process startsa Echo command as process finishesbA progression of progress modescUse the lazy or strict runner?d7Extra text for start/end message - e.g. the change rootkMModify the indentation prefixes for stdout and stderr in the progress monad.lSet verbosity to a specific level from 0 to 3. vlevel :: (MonadIO m, Monoid text, MonadState (RunState text) m) => Int -> m () vlevel :: forall m text char. (IsString text, ListLike text char, MonadIO m) => Int -> m ()[Output the dotified text of a chunk list with a newline at EOF. Returns the original list.ROutput the dotified text of a chunk list. Returns the original (undotified) list.dotifyChunk charsPerDot dot chunk - Replaces every charsPerDot characters in the Stdout and Stderr chunks with one dot. Runs in the state monad to keep track of how many characters had been seen when the previous chunk finished. chunks.BWrite the Stdout chunks to stdout and the Stderr chunks to stderr.1Pure function to indent the text of a chunk list.Indent the text of a chunk with the prefixes given for stdout and stderr. The state monad keeps track of whether we are at the beginning of a line - when we are and more text comes we insert one of the prefixes.6TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzR  !"#$%&'(CHGDEFIJKLMTVUWXYZ[\]^_`abcdefghijklmnopqrZe[\]^_`abcdTUVWXYfghijklmnpoqr&TUVWXYZ[ \]^_`abcdefghijklmnopqrstuvwxyz                     ! "#$%&'()*+,-./ 012345678 09: 0; 09: 0< 0=> 0=>?@ABCDEFGHIJKLMNO P Q R S T U V W W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v wxyz{|}~~      +process-extras-0.7.2-F9N38UCKiNr3N6z1vIL27KSystem.Process.ListLikeSystem.Process.CommonSystem.Process.TextSystem.Process.Text.BuilderSystem.Process.Text.LazySystem.Process.CharsSystem.Process.ByteString.LazySystem.Process.ByteStringSystem.Process.RunUtilsSystem.ProcessreadProcessWithExitCodeprocess-1.4.3.0showCommandForUsershellproc child_user child_group new_sessioncreate_new_consoledetach_console delegate_ctlc create_group close_fdsstd_errstd_outstd_inenvcwdcmdspec CreateProcess RawCommand ShellCommandCmdSpecListLikeProcessIO forceOutput readChunks ProcessResultpidfoutferrfintfcodef ProcessText ProcessMakerprocessshowProcessMakerForUserreadCreateProcessWithExitCodereadCreateProcessStrictreadCreateProcessLazyshowCreateProcessForUsershowCmdSpecForUser$fMonoidExitCode$fProcessResulttext(,,)$fProcessMaker(,,)$fProcessMakerCreateProcess$fListLikeProcessIOTextChar$fProcessTextTextChar$fListLikeProcessIOBuilderChar$fListLikeProcessIOCharsChar"$fListLikeProcessIOByteStringWord8$fProcessTextByteStringWord8Chunk ProcessHandleStdoutStderrResult ExceptionreadCreateProcess foldOutput collectOutput writeOutput writeChunk$fProcessResulta(,)$fProcessResulta[]$fShowProcessHandle$fListLikeProcessIO[]Char$fProcessText[]Char $fShowChunk OutputStyleDotsAllIndentedSilentRunMRunTRunState_output _outprefix _errprefix _echoStart_echoEnd _verbosity_lazy_messagerunT echoStartechoEndoutputsilentdotsindentvlevelquieternoisierstrictlazymessagerun $fDotChar$fDefaultRunState$fRunMByteStringWord8m$fRunMByteStringWord8m0$fRunMTextCharm$fRunMTextCharm0 $fRunM[]Charm $fDotWord8$fEqBOLforkWait%ListLike-4.5.1-2SWFpUyECZs24bL1zUVxGRData.ListLike.IO ListLikeIOreadInterleaved writeInputignoreResourceVanishedbaseGHC.IO.ExceptionExitCodeGHC.BaseMonoidreadInterleaved'#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.InternalTextData.Text.Internal.Lazybytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringData.ByteString.InternalBOL putDotsLnputDots dotifyChunkputChunk indentChunks indentChunkMOLDotdotnoEchonoIndentrun'writeOutputIndented