runPulumiCommand method

Future<PulumiCommandResult> runPulumiCommand(
  1. List<String> arguments, {
  2. bool check = true,
  3. String? workingDirectory,
  4. Map<String, String>? extraEnvironment,
})

Executes pulumi <arguments>.

Implementation

Future<PulumiCommandResult> runPulumiCommand(
  List<String> arguments, {
  bool check = true,
  String? workingDirectory,
  Map<String, String>? extraEnvironment,
}) async {
  final effectiveArgs = _remoteArgsForCommand(arguments);

  final request = PulumiCommandRequest(
    executable: pulumiBinary,
    arguments: effectiveArgs,
    workingDirectory: workingDirectory ?? workDir,
    environment: <String, String>{
      ...Platform.environment,
      ...environmentVariables,
      if (pulumiHome != null && pulumiHome!.trim().isNotEmpty)
        'PULUMI_HOME': pulumiHome!,
      if (remote) 'PULUMI_EXPERIMENTAL': 'true',
      if (extraEnvironment != null) ...extraEnvironment,
    },
    runInShell: runInShell,
    stdoutEncoding: stdoutEncoding,
    stderrEncoding: stderrEncoding,
  );

  final result = await _commandRunner(request);
  if (check && !result.succeeded) {
    throw createCommandException(request, result);
  }
  return result;
}