diff --git a/packages/shell-server/package.js b/packages/shell-server/package.js index e1d9cf4af3..c8b11d80d2 100644 --- a/packages/shell-server/package.js +++ b/packages/shell-server/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "shell-server", - version: "0.4.0", + version: "0.5.0", summary: "Server-side component of the `meteor shell` command.", documentation: "README.md" }); diff --git a/packages/shell-server/shell-server.js b/packages/shell-server/shell-server.js index 7bba75f3e7..73b62eb214 100644 --- a/packages/shell-server/shell-server.js +++ b/packages/shell-server/shell-server.js @@ -12,6 +12,9 @@ import { import { createServer } from "net"; import { start as replStart } from "repl"; +// Enable process.sendMessage for communication with build process. +import "meteor/inter-process-messaging"; + const INFO_FILE_MODE = parseInt("600", 8); // Only the owner can read or write. const EXITING_MESSAGE = "Shell exiting..."; @@ -308,7 +311,11 @@ class Server { repl.defineCommand("reload", { help: "Restart the server and the shell", action: function() { - process.exit(0); + if (process.sendMessage) { + process.sendMessage("shell-server", { command: "reload" }); + } else { + process.exit(0); + } } }); } diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index a082f43c6d..9d67c146a8 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -767,6 +767,14 @@ _.extend(AppRunner.prototype, { var serverWatcher; var clientWatcher; + appProcess.proc.onMessage("shell-server", message => { + if (message && message.command === "reload") { + self._resolvePromise("run", { outcome: "changed" }); + } else { + return Promise.reject("Unsupported shell command: " + message); + } + }); + if (self.watchForChanges) { serverWatcher = new watch.Watcher({ watchSet: serverWatchSet,