1diff --git a/mk b/mk
2index a5baa0f..4ed2350 100644
3--- a/mk
4+++ b/mk
5@@ -25,7 +25,7 @@ const rm = (x) => {
6 };
7 const pj = JSON.parse(rf('package.json'));
8 // v:version string - "x.y.z" where z is the number of commits since the beginning of the project
9-const v = `${pj.version.replace(/\.0$/, '')}.${sh('git rev-list --count HEAD')}`;
10+const v = "@version@";
11 const isDyalogBuild = /^dyalog/.test(pj.name);
12 const tasks = { };
13
14@@ -36,8 +36,8 @@ const b = (f) => {
15 const vi = {
16 versionInfo: {
17 version: v,
18- date: sh('git show -s HEAD --pretty=format:%ci'),
19- rev: sh('git rev-parse HEAD'),
20+ date: 'unknown',
21+ rev: 'nixpkgs',
22 },
23 };
24 wf('_/version.js', `D=${JSON.stringify(vi)}`);
25@@ -51,8 +51,7 @@ const incl = new RegExp('^$'
26 const pkg = (x, y, f) => {
27 rq('electron-packager')({
28 dir: '.',
29- platform: x,
30- arch: y,
31+ asar: true,
32 tmpdir: '/tmp/ridebuild',
33 out: `_/${pj.name}`,
34 overwrite: true,
35@@ -79,8 +78,8 @@ const pkg = (x, y, f) => {
36 ProductName: 'RIDE',
37 InternalName: 'RIDE',
38 },
39- }).then(() => {
40- const d = `_/${pj.name}/${pj.productName}-${x}-${y}`;
41+ }).then(paths => {
42+ const d = paths[0];
43 rm(`${d}/version`);
44 fs.existsSync(`${d}/LICENSE`) && mv(`${d}/LICENSE`, `${d}/LICENSE.electron`);
45 generateLicenses(`${d}/ThirdPartyNotices.txt`);
46@@ -88,6 +87,7 @@ const pkg = (x, y, f) => {
47 }, e => f(e));
48 };
49
50+const self = (f) => { b(e => (e ? f(e) : pkg(undefined, undefined, f))); };
51 const l = (f) => { b(e => (e ? f(e) : pkg('linux', 'x64', f))); };
52 const w = (f) => { b(e => (e ? f(e) : pkg('win32', 'ia32', f))); };
53 const o = (f) => { b(e => (e ? f(e) : pkg('darwin', 'x64', f))); };
54@@ -109,6 +109,7 @@ tasks.ma=ma; tasks.masarm = ma;
55 tasks.a = a; tasks.arm = a;
56 tasks.d = d; tasks.dist = d;
57 tasks.c = c; tasks.clean = c;
58+tasks.self = self;
59
60 async.each(
61 process.argv.length > 2 ? process.argv.slice(2) : ['build'],