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