run method
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");
}