executeProfile method
Implementation
Future<void> executeProfile(
ReplayHarnessConfig replayConfig,
ProfileHarnessConfig config,
) async {
if (config.error case final error?) {
usageException(error);
}
var prepared = await _prepare(replayConfig);
final customized = await customizeReplayScenario(
prepared.scenario,
prepared.scenarioPath,
);
if (customized != null) {
await customized.save(prepared.scenarioPath);
prepared = PreparedReplay(
selection: prepared.selection,
scenario: customized,
actionCount: customized.actions.length,
);
}
await prepareProfileArtifactDir(config.artifactDir);
final profilerArgs = buildProfileArgs(config, prepared.scenarioPath);
final env =
customizeReplayEnvironment(replayConfig) ?? io.Platform.environment;
final process = await io.Process.start(
config.profilerCommand,
profilerArgs,
environment: env,
mode: io.ProcessStartMode.inheritStdio,
workingDirectory: io.Directory.current.path,
);
final exitCode = await _waitForExit(process, config.timeoutSeconds);
onProfileCompleted(config, exitCode);
if (exitCode != 0) {
io.exitCode = exitCode;
}
}