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

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,
    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;
}