1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-06-15 23:00:36 +02:00
Files
joplin/ElectronClient/app/compile-package-info.js

43 lines
1.6 KiB
JavaScript
Raw Normal View History

2017-11-28 19:53:29 +00:00
const fs = require('fs-extra');
const execSync = require('child_process').execSync;
2017-11-28 19:53:29 +00:00
// Electron Builder strip off certain important keys from package.json, which we need, in particular build.appId
// so this script is used to preserve the keys that we need.
2019-09-19 22:51:18 +01:00
const packageInfo = require(`${__dirname}/package.json`);
2017-11-28 19:53:29 +00:00
let removeKeys = ['scripts', 'devDependencies', 'optionalDependencies', 'dependencies'];
for (let i = 0; i < removeKeys.length; i++) {
delete packageInfo[removeKeys[i]];
}
const appId = packageInfo.build.appId;
delete packageInfo.build;
packageInfo.build = { appId: appId };
let branch;
let hash;
try {
// Use stdio: 'pipe' so that execSync doesn't print error directly to stdout
branch = execSync('git rev-parse --abbrev-ref HEAD', { stdio: 'pipe' }).toString().trim();
hash = execSync('git log --pretty="%h" -1', { stdio: 'pipe' }).toString().trim();
// The builds in CI are done from a 'detached HEAD' state
if (branch === 'HEAD') branch = 'master';
2019-10-09 21:35:13 +02:00
} catch (err) {
// Don't display error object as it's a "fatal" error, but
// not for us, since is it not critical information
// https://github.com/laurent22/joplin/issues/2256
console.info('Warning: Could not get git info (it will not be displayed in About dialog box)');
}
if (typeof branch !== 'undefined' && typeof hash !== 'undefined') {
packageInfo.git = { branch: branch, hash: hash };
}
2019-09-19 22:51:18 +01:00
let fileContent = `// Auto-generated by compile-package-info.js\n// Do not change directly\nconst packageInfo = ${JSON.stringify(packageInfo, null, 4)};`;
fileContent += '\n';
fileContent += 'module.exports = packageInfo;';
2017-11-28 19:53:29 +00:00
2019-09-19 22:51:18 +01:00
fs.writeFileSync(`${__dirname}/packageInfo.js`, fileContent);