mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
ensure some release
This commit is contained in:
@@ -82,8 +82,6 @@ Fiber(function () {
|
||||
// found in the warehouse, or null if warehouse has no releases
|
||||
var releaseVersion = null;
|
||||
var calculateReleaseVersion = function (argv) {
|
||||
ensureSomeRelease();
|
||||
|
||||
if (!files.usesWarehouse()) {
|
||||
if (argv.release) {
|
||||
console.error("Cannot specify --release when running meteor from a git checkout.");
|
||||
@@ -94,6 +92,8 @@ Fiber(function () {
|
||||
return 'none';
|
||||
}
|
||||
|
||||
ensureSomeRelease();
|
||||
|
||||
// If a release was specified explicitly on the command line, that's the one
|
||||
// to use.
|
||||
if (argv.release)
|
||||
|
||||
@@ -25,8 +25,9 @@ var _ = require("underscore");
|
||||
|
||||
// XXX do we really need this __dirname dance? Doesn't
|
||||
// require("./files.js") work?
|
||||
var files = require(path.join(__dirname, "files.js"));
|
||||
var project = require(path.join(__dirname, "project.js"));
|
||||
var files = require('./files.js');
|
||||
var project = require('./project.js'));
|
||||
var updater = require('./updater.js');
|
||||
|
||||
var PACKAGES_URLBASE = 'https://packages.meteor.com';
|
||||
|
||||
@@ -77,11 +78,14 @@ var warehouse = module.exports = {
|
||||
}
|
||||
},
|
||||
|
||||
_latestReleaseSymlinkPath: function () {
|
||||
return path.join(warehouse.getWarehouseDir(), 'releases', 'latest');
|
||||
},
|
||||
|
||||
// look in the warehouse for the latest release version. if no
|
||||
// releases are found, return null.
|
||||
latestRelease: function() {
|
||||
var latestReleaseSymlink = path.join(
|
||||
warehouse.getWarehouseDir(), 'releases', 'latest');
|
||||
var latestReleaseSymlink = warehouse._latestReleaseSymlinkPath();
|
||||
try {
|
||||
return fs.readlinkSync(latestReleaseSymlink);
|
||||
} catch (e) {
|
||||
@@ -89,13 +93,23 @@ var warehouse = module.exports = {
|
||||
}
|
||||
},
|
||||
|
||||
// XXX make errors prettier
|
||||
fetchLatestRelease: function () {
|
||||
var manifest = Future.wrap(updater.get_manifest)().wait();
|
||||
var release = manifest.releases.stable; // XXX in the future support release channels
|
||||
this._populateWarehouseForRelease(release);
|
||||
// xcxc write getReleaseDir();
|
||||
//xcxc fs.symlinkSync(); to temp, random filename
|
||||
// xcxc rename
|
||||
// XXX in the future support release channels other than stable
|
||||
var releaseName = manifest.releases.stable;
|
||||
if (!releaseName) {
|
||||
console.error("No stable release found.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
warehouse._populateWarehouseForRelease(releaseName);
|
||||
var latestReleaseSymlink = warehouse._latestReleaseSymlinkPath();
|
||||
var tmpSymlink = latestReleaseSymlink + ".tmp" + warehouse._randomToken();
|
||||
// You can't directly symlink over an existing symlink, but you can rename
|
||||
// over it.
|
||||
fs.symlinkSync(releaseName, tmpSymlink);
|
||||
fs.renameSync(tmpSymlink, latestReleaseSymlink);
|
||||
},
|
||||
|
||||
existsInWarehouse: function (name, version) {
|
||||
|
||||
Reference in New Issue
Block a user