springboarding appears to actually work

This commit is contained in:
David Glasser
2013-02-25 16:32:19 -08:00
parent bba7bda220
commit 5aabe7a85f

View File

@@ -145,16 +145,19 @@ var warehouse = module.exports = {
var engineTarballFilename =
"meteor-engine-" + releaseManifest.engine + "-" +
warehouse._unameAndArch() + ".tar.gz";
var engineTarballPath = "/engines/" + releaseManifest.engine + "/"
+ engineTarballFilename;
var engineTarball = Future.wrap(files.getUrl)({
url: PACKAGES_URLBASE + "/engines/" + engineTarballFilename,
url: PACKAGES_URLBASE + engineTarballPath,
encoding: null
}).wait();
var engineDir = warehouse.getEngineDir(engineVersion);
// we don't end up with a corrupt warehouse
var tmpEngineDir = engineDir + ".tmp" + warehouse._randomToken();
// use a temp dir to avoid getting a corrupt warehouse
var tmpEngineDir = warehouse.getEngineDir(
".tmp" + warehouse._randomToken());
files.mkdir_p(tmpEngineDir);
files.extractTarGz(engineTarball, tmpEngineDir);
fs.renameSync(tmpEngineDir, engineDir);
fs.renameSync(path.join(tmpEngineDir, releaseManifest.engine), engineDir);
} catch (e) {
console.error("Failed to load engine for release " + releaseVersion);
throw e;