startPreviewServer function

Future<bool> startPreviewServer()

Implementation

Future<bool> startPreviewServer() async {
  if (server != null) {
    return false;
  }

  info('Starting preview server.');

  server = await Process.start(
    'sh',
    [
      '-c',
      'flutter run --pub -d chrome --web-renderer html|| flutter run --pub -d edge --web-renderer html',
    ],
    workingDirectory: 'preview',
  );

  final serverPen = AnsiPen()..blue();
  final stdoutSub = server!.stdout.listen((event) {
    stdout.write(serverPen(String.fromCharCodes(event)));
  });

  server!.exitCode.then((_) {
    alert(
      "Preview server is terminated. Press 'r' or 'R' to restart.",
    );
    stdoutSub.cancel();
    server = null;
  });

  return true;
}