execute method

Future<int> execute(
  1. RunPlan plan,
  2. String command, {
  3. Map<String, String> environment = const {},
})

Runs command in every package of plan and returns the exit code: 0, or the exit code of the first failed package in plan order.

Every run gets environment plus DPK_ROOT, DPK_PACKAGE_NAME, and DPK_PACKAGE_PATH.

Implementation

Future<int> execute(
  RunPlan plan,
  String command, {
  Map<String, String> environment = const {},
}) {
  if (plan.isSingle) {
    final package = plan.packages.single;
    final shell = shellCommand(command);
    return processRunner.runInteractive(
      shell.executable,
      shell.arguments,
      workingDirectory: package.path,
      environment: _environment(package, environment),
    );
  }
  return _runMany(plan, command, environment);
}