Files
GDevelop/newIDE/app/scripts/make-version-metadata.js
2020-05-08 17:42:12 +02:00

51 lines
1.6 KiB
JavaScript

/**
* Launch this script to re-generate VersionMetadata.js, used by the IDE
* to know about the current version number.
*
* The version is read from `newIDE/electron-app/app/package.json`. It must
* always be the source of truth and the only place to update when the version
* is changed.
*/
const fs = require('fs');
var shell = require('shelljs');
const electronAppPackageJson = require('../../electron-app/app/package.json');
const version = electronAppPackageJson.version;
const outputFile = '../src/Version/VersionMetadata.js';
const gitHashShellString = shell.exec(`git rev-parse "HEAD"`, {
silent: true,
});
let gitHash = gitHashShellString.stdout.trim();
if (gitHashShellString.stderr || gitHashShellString.code) {
shell.echo(`⚠️ Can't find the hash or branch of the associated commit.`);
gitHash = 'unknown-hash';
}
const writeFile = object => {
return new Promise((resolve, reject) => {
const content = [
`// @flow`,
`// This file is generated by make-version-metadata.js script`,
`// Don't import this file directly, prefer to use newIDE/app/src/Version/index.js instead.`,
`// prettier-ignore`,
`module.exports = ${JSON.stringify(object, null, 2)};`,
``,
].join('\n');
fs.writeFile(outputFile, content, err => {
if (err) return reject(err);
resolve();
});
});
};
writeFile({
version,
gitHash,
versionWithHash: [version, gitHash].join('-'),
}).then(
() => console.info('✅ src/Version/VersionMetadata.js properly generated.'),
err => console.error('❌ Error while src/Version/VersionMetadata.js', err)
);