Skip to content

Commit

Permalink
Desktop: Improved: Show git branch and hash in About dialog (#1692)
Browse files Browse the repository at this point in the history
* show git branch and hash in About dialog

This additional info will only be shown, if the code is not an official release.

An official release is calculated as follows:
- current commit has a tag
- the tag contains the version number of the package

However, the information will always be printed to the console.

* info will now always be shown in About dialog (if available)

ElectronClient/app/compile-package-info.js: added warning
ElectronClient/app/app.js: push info conditionally to the message array

* use sprintf syntax
  • Loading branch information
tessus authored and laurent22 committed Jun 27, 2019
1 parent ffc311d commit 207d433
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
8 changes: 8 additions & 0 deletions ElectronClient/app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -512,12 +512,20 @@ class Application extends BaseApplication {

function _showAbout() {
const p = packageInfo;
let gitInfo = '';
if ("git" in p) {
gitInfo = _('Revision: %s (%s)', p.git.hash, p.git.branch);
}
let message = [
p.description,
'',
'Copyright © 2016-2019 Laurent Cozic',
_('%s %s (%s, %s)', p.name, p.version, Setting.value('env'), process.platform),
];
if (!!gitInfo) {
message.push("\n" + gitInfo);
console.info(gitInfo);
}
bridge().showInfoMessageBox(message.join('\n'), {
icon: bridge().electronApp().buildDir() + '/icons/32x32.png',
});
Expand Down
14 changes: 14 additions & 0 deletions ElectronClient/app/compile-package-info.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const fs = require('fs-extra');
const execSync = require('child_process').execSync;

// 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.
Expand All @@ -16,6 +17,19 @@ const appId = packageInfo.build.appId;
delete packageInfo.build;
packageInfo.build = { appId: appId };

let branch;
let hash;
try {
branch = execSync('git branch --show-current').toString().trim();
hash = execSync('git log --pretty="%h" -1').toString().trim();
}
catch(err) {
console.warn("Could not get git info", err);
}
if (typeof branch !== 'undefined' && typeof hash !== 'undefined') {
packageInfo.git = { branch: branch, hash: hash };
}

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;";
Expand Down

0 comments on commit 207d433

Please sign in to comment.