We don't have a way to HCP a changed set of plugins or platforms, so
just exit and ask the user to re-run. There are probably some cases
where we don't have to exit (e.g. if you add the android platform, we
probably don't need to exit out of 'meteor run ios'), but we exit in all
cases for simplicity.
The specific issue is the "Could not springboard to release..." message
showing up on the same line as a progress bar. Seems like a good idea to
use Console everywhere in this file anyway.
Instead of "Meteor METEOR@1.0", print "Meteor 1.0".
This change is somewhat untested because in order to test it we need
1. a built release, and 2. installed 'meteor' to point to that built
release.
Now we see something like:
$ curmeteor
Unable to refresh catalog (are you offline?)
Could not download package iron:dynamic-template@0.4.1: getaddrinfo ENOTFOUND
Could not download package iron:router@0.9.4: getaddrinfo ENOTFOUND
Could not download package iron:layout@0.4.1: getaddrinfo ENOTFOUND
Could not download package iron:core@0.3.4: getaddrinfo ENOTFOUND
Could not install all the requested packages.
These errors should look like connection errors, not clean closes:
- Heartbeat timeout (DDP-level or SockJS-level)
- Connection timeout (SockJS implementation)
The "disconnected with no error while waiting for something we asked
for" error in ServiceConnection is now a DDP.ConnectionError so that it
prints better.
If a command refuses to run due to a catalog sync error, it should print
the error. (Commands that merely warn that they could not sync don't
print that error, unless METEOR_LOG=debug.)
Summary:
Invoking `meteor shell` starts an interactive REPL for evaluating server-side code.
Shell commands are evaluated in the server process, so the shell's input and output have to be piped through a socket from/to the parent process that runs the `meteor shell` command. This separation accounts for most of the complexity of this diff, but the end result is pretty seamless: tab completion, history, ctlr-c and ctrl-d, etc. all work as expected.
Task: https://app.asana.com/0/15750483766338/16576093991355
Test Plan: Run `meteor run` in one terminal and `meteor shell` in another, evaluate some commands, and verify that the commands seem to be running the context of the server process. Also check tab completion and history, and ensure that the server is running simultaneously with the shell.
Reviewers: dgreenspan, avital, slava, emily, nim, sashko
CC: sashko
Differential Revision: https://phabricator.meteor.com/D837