Shell constructor

Shell(
  1. {bool throwOnError = true,
  2. String? workingDirectory,
  3. Map<String, String>? environment,
  4. bool includeParentEnvironment = true,
  5. bool? runInShell,
  6. Encoding stdoutEncoding = systemEncoding,
  7. Encoding stderrEncoding = systemEncoding,
  8. Stream<List<int>>? stdin,
  9. StreamSink<List<int>>? stdout,
  10. StreamSink<List<int>>? stderr,
  11. bool verbose = true,
  12. bool? commandVerbose,
  13. bool? commentVerbose,
  14. ShellOptions? options}
)

throwOnError means that if an exit code is not 0, it will throw an error

Unless specified runInShell will be false. However on windows, it will default to true for non .exe files

if verbose is not false or commentVerbose is true, it will display the comments as well

options overrides all other parameters

Implementation

factory Shell(
    {bool throwOnError = true,
    String? workingDirectory,
    Map<String, String>? environment,
    bool includeParentEnvironment = true,
    bool? runInShell,
    Encoding stdoutEncoding = systemEncoding,
    Encoding stderrEncoding = systemEncoding,
    Stream<List<int>>? stdin,
    StreamSink<List<int>>? stdout,
    StreamSink<List<int>>? stderr,
    bool verbose = true,
    // Default to true
    bool? commandVerbose,
    // Default to false
    bool? commentVerbose,

    /// Overrides all parameters
    ShellOptions? options}) {
  var shell = shellContext.newShell(
      options: options ??
          ShellOptions(
              verbose: verbose,
              stdin: stdin,
              stdout: stdout,
              stderr: stderr,
              throwOnError: throwOnError,
              workingDirectory: workingDirectory,
              runInShell: runInShell,
              commandVerbose: commandVerbose ?? verbose,
              environment: environment,
              includeParentEnvironment: includeParentEnvironment,
              commentVerbose: commentVerbose ?? false,
              stderrEncoding: stderrEncoding,
              stdoutEncoding: stdoutEncoding));
  return shell;
}