launch method
Implementation
Future launch() async {
var config = readConfig();
var sharedLibraryWatcher = DirectoryWatcher(path.join(
getPathFromRoot(config.structure.sharedLibrary).path, "lib"))
.events
.where(watcherPathFilter)
.listen((event) => enqueueBuild(BuildStages.sharedLibrary));
var serverWatcher = DirectoryWatcher(
path.join(getPathFromRoot(config.structure.server).path, "lib"))
.events
.where(watcherPathFilter)
.listen((event) => enqueueBuild(BuildStages.server));
var applicationWatcher = DirectoryWatcher(path.join(
getPathFromRoot(config.structure.application).path, "lib"))
.events
.where(watcherPathFilter)
.listen((event) => enqueueBuild(BuildStages.application));
stdin.echoMode = false;
stdin.lineMode = false;
var stdInListener = stdin.listen((event) {
var str = utf8.decode(event);
if (str == "r") {
logger.cln().info("Forcing rebuild");
enqueueBuild(0);
}
});
enqueueBuild(0);
await ProcessSignal.sigint.watch().first;
stdin.echoMode = true;
stdin.lineMode = true;
logger.info("Exiting...");
await sharedLibraryWatcher.cancel();
await serverWatcher.cancel();
await applicationWatcher.cancel();
await stdInListener.cancel();
await buildController.close();
await buildStartController.close();
}