Represents a specific invocation of a specific program.
This is used as an intermediate type between deciding how to call a program and actually doing it. This provides the opportunity to the caller to adjust how the program will be called. These invocations can either be run directly or turned into shell or batch scripts.
Constructors
ProgramInvocationprogInvokePath :: FilePathprogInvokeArgs :: [String]progInvokeEnv :: [(String, Maybe String)]progInvokeCwd :: Maybe FilePathprogInvokeInput :: Maybe IODataprogInvokeInputEncoding :: IOEncodingTODO: remove this, make user decide when constructing progInvokeInput.
progInvokeOutputEncoding :: IOEncoding