diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 7f1122fd..f573941b 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -24,4 +24,6 @@
> Arch: x64 or ia32
+> BuildVersion:
+
> Does this happen upstream: yes, no, unknown, or N/A
diff --git a/app/view/main/About.js b/app/view/main/About.js
index 1ce6493a..0148cbda 100644
--- a/app/view/main/About.js
+++ b/app/view/main/About.js
@@ -9,6 +9,11 @@ Ext.define('Rambox.view.main.About', {
,width: 300
,height: 450
,bodyPadding: 10
+ ,initComponent: function() {
+ var me = this;
+ me.callParent(arguments);
+ me.data.buildversion = require('fs').readFileSync( __dirname + '/BUILDVERSION', 'utf8');
+ }
,data: {
version: require('electron').remote.app.getVersion()
,platform: process.platform
@@ -25,6 +30,7 @@ Ext.define('Rambox.view.main.About', {
,'
Electron: {electron}
'
,'Chromium: {chromium}
'
,'Node: {node}
'
+ ,'BuildVersion: {buildversion}
'
,'
'
,''
,'
'
diff --git a/electron/menu.js b/electron/menu.js
index 79ef6031..119b87db 100644
--- a/electron/menu.js
+++ b/electron/menu.js
@@ -40,6 +40,7 @@ module.exports = function(config) {
{
label: '&'+locale['menu.help[1]'],
click() {
+ const buildversion = require('fs').readFileSync( __dirname + '/../BUILDVERSION', 'utf8');
const body = `
@@ -49,7 +50,8 @@ module.exports = function(config) {
-
> ${app.getName()} ${app.getVersion()}
> Electron ${process.versions.electron}
- > ${process.platform} ${process.arch} ${os.release()}`;
+ > ${process.platform} ${process.arch} ${os.release()}
+ > ${buildversion}`;
shell.openExternal(`https://github.com/TheGoddessInari/rambox/issues/new?body=${encodeURIComponent(body)}`);
}
diff --git a/package-lock.json b/package-lock.json
index 94bade41..bf9a3e07 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2192,6 +2192,12 @@
"is-arrayish": "^0.2.1"
}
},
+ "es6-object-assign": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=",
+ "dev": true
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -2994,6 +3000,12 @@
}
}
},
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
"invert-kv": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
@@ -4128,6 +4140,12 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
"path-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
@@ -4321,6 +4339,15 @@
"string_decoder": "~0.10.x"
}
},
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
@@ -4456,6 +4483,15 @@
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
+ "resolve": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.5"
+ }
+ },
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@@ -4628,6 +4664,44 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
+ "shelljs": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+ "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "shx": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz",
+ "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==",
+ "dev": true,
+ "requires": {
+ "es6-object-assign": "^1.0.3",
+ "minimist": "^1.2.0",
+ "shelljs": "^0.8.1"
+ }
+ },
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
diff --git a/package.json b/package.json
index db12fa11..ac7fc8ad 100644
--- a/package.json
+++ b/package.json
@@ -3,14 +3,15 @@
"scripts": {
"start": "npm run compile && electron-builder install-app-deps && electron build/production/Rambox",
"start:debug": "npm run compile && electron build/production/Rambox --enable-logging",
- "test": "./node_modules/.bin/mocha test/tests/**/*.spec.js",
- "clean": "rimraf ./build/production",
- "compile": "sencha app build && cpy app/package.json app/package-lock.json build/production/Rambox/",
+ "test": "mocha test/tests/**/*.spec.js",
+ "buildversion": "git show --pretty=\"%h %d %cD\" -s > build/production/Rambox/BUILDVERSION || node -p -e \"require('./build/production/Rambox/package.json').version\" > build/production/Rambox/BUILDVERSION",
+ "clean": "shx rm -rf ./build/production",
+ "compile": "sencha app build && cpy app/package.json app/package-lock.json build/production/Rambox/ && npm run buildversion",
"recompile": "npm run distclean && npm run compile",
- "distclean": "rimraf ./dist",
- "distclean:win": "rimraf ./dist/win-{ia32-,}unpacked",
- "distclean:linux": "rimraf ./dist/linux-{ia32-,}unpacked",
- "distclean:osx": "rimraf ./dist/macos-unpacked",
+ "distclean": "shx rm -rf ./dist",
+ "distclean:win": "shx rm -rf ./dist/win-{ia32-,}unpacked",
+ "distclean:linux": "shx rm -rf ./dist/linux-{ia32-,}unpacked",
+ "distclean:osx": "shx rm -rf ./dist/macos-unpacked",
"pack": "electron-builder --dir",
"pack:osx": "electron-builder --macos --dir",
"pack:win": "electron-builder --win --ia32 --x64 --dir",
@@ -110,7 +111,7 @@
"electron": "^3.0.10",
"electron-builder": "^20.38.0",
"mocha": "^5.2.0",
- "rimraf": "^2.6.2",
+ "shx": "^0.3.2",
"spectron": "^5.0.0"
}
}