apply method

  1. @override
Future<void> apply({
  1. required Directory directory,
  2. required Logger? logger,
})
override

Apply this preparation step to the source directory.

Implementation

@override
Future<void> apply({
  required Directory directory,
  required Logger? logger,
}) async {
  logger?.info('Running: $executable ${arguments.join(' ')}');

  final result = await ProcessRunner(logger: logger).runStreaming(
    executable,
    arguments,
    workingDirectory: directory,
    environment: environment,
    requireSuccess: false,
  );

  if (result.exitCode != 0) {
    throw SourcePreparationException(
      'Command failed: $executable ${arguments.join(' ')}\n${result.stderr.trim()}',
    );
  }
}