fix checkout message if app release lacks METEOR@

Reflow a word-wrapped message to look better

All non-slow 'releases' tests pass now
This commit is contained in:
David Glasser
2014-10-22 15:11:57 -07:00
parent 2f4231aaf2
commit 8793d26d43
3 changed files with 29 additions and 23 deletions

View File

@@ -949,25 +949,15 @@ Fiber(function () {
// Let's do some processing here. If the user/release file specified a
// track, we need to display that correctly, and if they didn't, we should
// make it clear that we are talking about the default track.
var releases = releaseName.split('@');
var track;
var version;
if (releases.length === 1) {
track = catalog.DEFAULT_TRACK;
version = releases[0];
} else {
track = releases[0];
// Do we forbid '@' sign in release versions? I sure hope so, but let's
// be careful.
version = releases.slice(1).join("@");
}
var utils = require('./utils.js');
var displayRelease = utils.displayRelease(track, version);
var trackAndVersion = utils.splitReleaseName(releaseName);
var displayRelease = utils.displayRelease(
trackAndVersion[0], trackAndVersion[1]);
// Now, let's process this.
if (releaseOverride) {
Console.error(displayRelease + ": unknown release.");
} else if (appDir) {
if (track !== catalog.DEFAULT_TRACK) {
if (trackAndVersion[0] !== catalog.DEFAULT_TRACK) {
displayRelease = "Meteor release " + displayRelease;
}
if (catalog.refreshFailed) {
@@ -979,9 +969,9 @@ Fiber(function () {
"release, or go online.");
} else {
Console.error(
"This project says that it uses " + displayRelease + ", but you \n" +
"don't have that version of Meteor installed and the Meteor update \n" +
"servers don't have it either. Please edit the .meteor/release file in \n" +
"This project says that it uses " + displayRelease + ", but you don't have\n" +
"that version of Meteor installed and the Meteor update servers\n" +
"don't have it either. Please edit the .meteor/release file in\n" +
"the project and change it to a valid Meteor release.");
}
} else {
@@ -1332,7 +1322,7 @@ commandName + ": You're not in a Meteor project directory.\n" +
if (command.requiresApp && release.current.isCheckout() &&
appRelease && appRelease !== "none") {
var utils = require("./utils.js");
var appReleaseParts = appRelease.split("@");
var appReleaseParts = utils.splitReleaseName(appRelease);
// For commands that work with apps, if we have overridden the
// app's usual release by using a checkout, print a reminder banner.
Console.warn(

View File

@@ -59,7 +59,7 @@ selftest.define("springboard", ['checkout', 'net'], function () {
// Suppose you ask for a release that doesn't exist.
s.set('METEOR_TEST_FAIL_RELEASE_DOWNLOAD', 'not-found');
run = s.run("--release", "weird");
run.readErr("weird: unknown release.\n");
run.readErr("Meteor weird: unknown release.\n");
run.expectEnd();
run.expectExit(1);
@@ -78,15 +78,15 @@ selftest.define("springboard", ['checkout', 'net'], function () {
s.write(".meteor/release", "strange");
s.set('METEOR_TEST_FAIL_RELEASE_DOWNLOAD', 'not-found');
run = s.run();
run.matchErr("version strange of Meteor");
run.matchErr("valid Meteor release");
run.matchErr("uses Meteor strange");
run.matchErr("don't have it either");
run.expectExit(1);
// You're offline and project asks for non-cached release.
s.set('METEOR_TEST_FAIL_RELEASE_DOWNLOAD', 'offline');
run = s.run();
run.matchErr("offline");
run.matchErr("version strange of Meteor");
run.matchErr("it uses Meteor strange");
run.matchErr("don't have that version of Meteor installed");
run.matchErr("update servers");
run.expectExit(1);
@@ -201,7 +201,7 @@ selftest.define("checkout", ['checkout'], function () {
s.write(".meteor/release", "something");
run = s.run("list");
run.readErr("=> Running Meteor from a checkout");
run.matchErr("project version (something)\n");
run.matchErr("project version (Meteor something)\n");
run.expectExit(0);
});
});

View File

@@ -402,6 +402,22 @@ exports.displayRelease = function (track, version, options) {
return track + '@' + version;
};
exports.splitReleaseName = function (releaseName) {
var parts = releaseName.split('@');
var track, version;
if (parts.length === 1) {
var catalog = require('./catalog.js');
track = catalog.DEFAULT_TRACK;
version = parts[0];
} else {
track = parts[0];
// Do we forbid '@' sign in release versions? I sure hope so, but let's
// be careful.
version = parts.slice(1).join("@");
}
return [track, version];
};
// Calls cb with each subset of the array "total", with non-decreasing size,
// until all subsets have been used or cb returns true. The array passed
// to cb may be safely mutated or retained by cb.