Fix revision bundling
Summary: This fixes headless not terminating due to the `package.json` not being readable. I instead write this to the `global` object in the same way that the version is set. Reviewed By: jknoxville Differential Revision: D14579316 fbshipit-source-id: 238afe912366c423552305e120088f4abac4c20b
This commit is contained in:
committed by
Facebook Github Bot
parent
57a24769e8
commit
939cc531e2
@@ -15,16 +15,19 @@ const {
|
||||
compile,
|
||||
compileDefaultPlugins,
|
||||
getVersionNumber,
|
||||
genMercurialRevision,
|
||||
} = require('./build-utils.js');
|
||||
|
||||
const PLUGINS_FOLDER_NAME = 'plugins';
|
||||
|
||||
function preludeBundle(dir, versionNumber) {
|
||||
function preludeBundle(dir, versionNumber, buildRevision) {
|
||||
const revisionStr =
|
||||
buildRevision == null ? '' : `global.__REVISION__="${buildRevision}";`;
|
||||
return new Promise((resolve, reject) =>
|
||||
lineReplace({
|
||||
file: path.join(dir, 'bundle.js'),
|
||||
line: 1,
|
||||
text: `var __DEV__=false; global.electronRequire = require; global.performance = require("perf_hooks").performance;global.__VERSION__="${versionNumber}";`,
|
||||
text: `var __DEV__=false; global.electronRequire = require; global.performance = require("perf_hooks").performance;global.__VERSION__="${versionNumber}";${revisionStr}`,
|
||||
addNewLine: true,
|
||||
callback: resolve,
|
||||
}),
|
||||
@@ -52,7 +55,7 @@ async function createZip(buildDir, distDir, targets) {
|
||||
|
||||
// write zip file
|
||||
zip.outputStream
|
||||
.pipe(fs.createWriteStream(path.join(distDir, `Flipper-headless.zip`)))
|
||||
.pipe(fs.createWriteStream(path.join(distDir, 'Flipper-headless.zip')))
|
||||
.on('close', resolve);
|
||||
zip.end();
|
||||
});
|
||||
@@ -88,7 +91,8 @@ async function createZip(buildDir, distDir, targets) {
|
||||
console.log('Created build directory', buildDir);
|
||||
await compile(buildDir, path.join(__dirname, '..', 'headless', 'index.js'));
|
||||
const versionNumber = getVersionNumber();
|
||||
await preludeBundle(buildDir, versionNumber);
|
||||
const buildRevision = await genMercurialRevision();
|
||||
await preludeBundle(buildDir, versionNumber, buildRevision);
|
||||
await compileDefaultPlugins(path.join(buildDir, PLUGINS_FOLDER_NAME));
|
||||
await createBinary([
|
||||
path.join(buildDir, 'bundle.js'),
|
||||
|
||||
@@ -7,14 +7,15 @@
|
||||
const path = require('path');
|
||||
const fs = require('fs-extra');
|
||||
const builder = require('electron-builder');
|
||||
const cp = require('child-process-es6-promise');
|
||||
const Platform = builder.Platform;
|
||||
const cp = require('child-process-es6-promise');
|
||||
const {
|
||||
buildFolder,
|
||||
compile,
|
||||
die,
|
||||
compileDefaultPlugins,
|
||||
getVersionNumber,
|
||||
genMercurialRevision,
|
||||
} = require('./build-utils.js');
|
||||
|
||||
function generateManifest(versionNumber) {
|
||||
@@ -31,14 +32,6 @@ function generateManifest(versionNumber) {
|
||||
);
|
||||
}
|
||||
|
||||
// Asynchronously determine current mercurial revision as string or `null` in case of any error.
|
||||
function genMercurialRevision() {
|
||||
return cp
|
||||
.spawn('hg', ['log', '-r', '.', '-T', '{node}'])
|
||||
.catch(err => null)
|
||||
.then(res => (res && res.stdout) || null);
|
||||
}
|
||||
|
||||
function modifyPackageManifest(buildFolder, versionNumber, hgRevision) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Creating package.json manifest');
|
||||
|
||||
@@ -10,6 +10,7 @@ const compilePlugins = require('../static/compilePlugins');
|
||||
const tmp = require('tmp');
|
||||
const path = require('path');
|
||||
const fs = require('fs-extra');
|
||||
const cp = require('child-process-es6-promise');
|
||||
|
||||
function die(err) {
|
||||
console.error(err.stack);
|
||||
@@ -98,10 +99,19 @@ function getVersionNumber() {
|
||||
return version;
|
||||
}
|
||||
|
||||
// Asynchronously determine current mercurial revision as string or `null` in case of any error.
|
||||
function genMercurialRevision() {
|
||||
return cp
|
||||
.spawn('hg', ['log', '-r', '.', '-T', '{node}'])
|
||||
.catch(err => null)
|
||||
.then(res => (res && res.stdout) || null);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
buildFolder,
|
||||
compile,
|
||||
die,
|
||||
compileDefaultPlugins,
|
||||
getVersionNumber,
|
||||
genMercurialRevision,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user