run method

Future run()

Implementation

Future run() async {
  logger.detail("Starting server");
  var config = readConfig();
  var serverPath = getPathFromRoot(config.structure.server);

  while (processKillers.isNotEmpty) {
    await Future.delayed(Duration(milliseconds: 250));
  }

  var process = await Process.start(
    "flutter",
    ["pub", "run", (path.join(serverPath.path, "bin", "server.dart"))],
    workingDirectory: serverPath.path,
  );
  processKillers.add(getProcessKiller(process));
  var outDoneCompleter = Completer();
  process.stdout.listen((event) {
    var lines = utf8.decode(event).trim().split("\n");
    for (var line in lines) {
      logger.moduleInfo("Server", line);
    }
  }, onDone: outDoneCompleter.complete);
  process.stderr.listen((event) {
    logger.moduleErr("Server", utf8.decode(event).trim());
  });
  var exitCode = await process.exitCode;
  logger.detail("Server exited with code $exitCode");
  await outDoneCompleter.future;
  logger.detail("Server stdout closed");
}