runDartCommand method

Future<int> runDartCommand(
  1. List<String> args, {
  2. String? workingDirectory,
  3. bool inheritStdio = false,
})

Implementation

Future<int> runDartCommand(List<String> args,
    {String? workingDirectory, bool inheritStdio = false}) async {
  var dartExecutable = await this.dartExecutable;

  workingDirectory ??= Directory.current.path;

  var processMode =
      inheritStdio ? ProcessStartMode.inheritStdio : ProcessStartMode.normal;

  var process = await Process.start(dartExecutable, args,
      workingDirectory: workingDirectory, mode: processMode);

  if (processMode == ProcessStartMode.normal) {
    var outputDecoder = systemEncoding.decoder;

    process.stdout.transform(outputDecoder).forEach((o) => stdout.write(o));
    process.stderr.transform(outputDecoder).forEach((o) => stderr.write(o));
  }

  var exitCode = await process.exitCode;
  return exitCode;
}