launchPanelHarness function

Future<HarnessProcess> launchPanelHarness(
  1. HarnessLaunchRequest request
)

Launches the existing panel self-drive harness script.

Implementation

Future<HarnessProcess> launchPanelHarness(HarnessLaunchRequest request) async {
  final Process process = await Process.start(
    'bash',
    <String>['tool/run_panel_selfdrive.sh', request.device],
    workingDirectory: request.repoRoot,
    environment: <String, String>{
      ...request.env,
      'PANEL_SELFDRIVE_ARTIFACT_DIR': request.artifactDir,
    },
  );
  final Stream<String> diagnostics = process.stderr
      .transform(const SystemEncoding().decoder)
      .transform(const LineSplitter())
      .asBroadcastStream();
  return HarnessProcess(
    diagnostics: diagnostics,
    exitCode: process.exitCode,
    kill: () async {
      process.kill(ProcessSignal.sigterm);
      await process.exitCode;
    },
  );
}