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