- die if you use --release in a checkout

- don't run calculateReleaseVersion twice for test-packages
- DTRT for test-packages in a checkout
This commit is contained in:
David Glasser
2013-02-25 18:00:09 -08:00
parent c6a4b63e98
commit a5dc7de519

View File

@@ -71,7 +71,17 @@ Fiber(function () {
// returns the release version to use (for certain commands). if we
// are in an app, reads '.meteor/release'. otherwise, the latest
// found in the warehouse, or null if warehouse has no releases
var releaseVersion = null;
var calculateReleaseVersion = function (argv) {
if (files.in_checkout()) {
if (argv.release) {
console.error("Cannot specify --release when running meteor from a git checkout.");
process.exit(1);
}
// There is no release in a git checkout.
return null;
}
// If a release was specified explicitly on the command line, that's the one
// to use.
if (argv.release)
@@ -181,30 +191,22 @@ Fiber(function () {
process.exit(1);
}
var releaseVersion = calculateReleaseVersion(new_argv);
var testPackages;
if (new_argv["package-dir"]) {
var packageDir = path.resolve(new_argv["package-dir"], "."); // strips trailing path.sep
// was important to strip trailing path.sep, otherwise we'd get a package named "foo/"
var packageName = path.basename(packageDir);
testPackages = [packages.loadFromDir(packageName, packageDir)];
} else if (new_argv._[1]) {
testPackages = new_argv._[1].split(',');
} else if (files.in_checkout()) {
testPackages = _.keys(packages.list());
} else if (releaseVersion) {
var releaseManifest = warehouse.releaseManifestByVersion(releaseVersion);
testPackages = _.keys(packages.list(releaseManifest));
} else {
if (new_argv._[1]) {
testPackages = new_argv._[1].split(',');
} else {
if (releaseVersion) {
var releaseManifest = warehouse.releaseManifestByVersion(releaseVersion);
testPackages = _.keys(packages.list(releaseManifest));
} else {
if (files.in_checkout()) {
testPackages = _.keys(packages.list());
} else {
process.stdout.write("Please specify a release version.");
process.exit(1);
}
}
}
process.stdout.write("Please specify a release version.");
process.exit(1);
}
var bundleOptions = {
@@ -715,7 +717,7 @@ Fiber(function () {
// engine corresponding to that release is the same as the one
// we're running. If not, springboard to the right engine (after
// having fetched it to the local warehouse)
var engineSpringboard = function (releaseVersion) {
var engineSpringboard = function () {
var releaseManifest = warehouse.releaseManifestByVersion(releaseVersion);
if (releaseManifest.engine === files.getEngineVersion())
return;
@@ -741,12 +743,12 @@ Fiber(function () {
var argv = optimist.argv;
var releaseVersion = calculateReleaseVersion(argv);
releaseVersion = calculateReleaseVersion(argv);
// if we're not running the correct engine, fetch it and
// re-run. if this is a git checkout, always run it.
if (!files.in_checkout())
engineSpringboard(releaseVersion);
engineSpringboard();
if (argv.help) {
argv._.splice(0, 0, "help");