UNPKG

14.1 kBJavaScriptView Raw
1// koffee 1.14.0
2
3/*
40000000 000 000 000 000 0000000
5000 000 000 000 000 000 000 000
60000000 000 000 000 000 000 000
7000 000 000 000 000 000 000 000
80000000 0000000 000 0000000 0000000
9 */
10var args, bindir, childp, cmd, config, d, dir, err, exe, exec, exeext, exepth, fs, i, icn, j, karg, kerror, kolor, len, len1, os, pkg, pkgdir, pkgpth, prune, ref, ref1, ref2, ref3, slash;
11
12ref = require('kxk'), args = ref.args, childp = ref.childp, fs = ref.fs, karg = ref.karg, kerror = ref.kerror, kolor = ref.kolor, os = ref.os, slash = ref.slash;
13
14args = karg("\nbuild\n compile . ? compile sources . = true\n install . ? run npm install . = true\n rebuild . ? electron-rebuild . = true\n package . ? package project . = true\n prune . ? prune package . = true . -P\n start . ? run executable . = true\n verbose . = true");
15
16config = require('../js/config');
17
18exec = function(msg, cmd, opt) {
19 if (opt == null) {
20 opt = {
21 shell: true,
22 encoding: 'utf8'
23 };
24 }
25 if (args.verbose) {
26 console.log(kolor.y5(msg));
27 }
28 return childp.execSync(cmd, opt);
29};
30
31try {
32 pkgdir = slash.pkg(process.cwd());
33 pkgpth = slash.join(pkgdir, 'package.json');
34 pkg = require(pkgpth);
35 bindir = pkg.name + '-' + ((os.platform()) + "-x64");
36 exeext = (function() {
37 switch (os.platform()) {
38 case 'win32':
39 return '.exe';
40 case 'darwin':
41 return '.app';
42 default:
43 return '';
44 }
45 })();
46 exepth = slash.resolve(slash.join(bindir, "" + pkg.name + exeext));
47 if (args.verbose) {
48 console.log(kolor.y3('cwd '), kolor.w2(slash.tilde(pkgdir)));
49 }
50 process.chdir(pkgdir);
51 if (slash.dirExists(bindir)) {
52 try {
53 if (os.platform() === 'win32') {
54 if (exec('quit', "taskkill /f /im " + (slash.file(exepth)) + " /t")) {
55 childp.execSync('sleep 2');
56 }
57 } else {
58 childp.execSync("killall " + pkg.name);
59 }
60 } catch (error) {
61 err = error;
62 kerror("kill failed: " + err);
63 }
64 if (args.verbose) {
65 console.log(kolor.y4('remove '), kolor.b6(bindir));
66 }
67 fs.removeSync(bindir);
68 }
69 if (args.compile) {
70 exec('compile', 'node --trace-warnings ' + slash.join(__dirname, 'konrad'));
71 }
72 if (args.install) {
73 exec('install', 'npm install');
74 }
75 if (args.rebuild) {
76 exec('rebuild', slash.resolve('./node_modules/.bin/electron-rebuild'));
77 }
78 if (args["package"]) {
79 exe = slash.resolve('./node_modules/.bin/electron-packager');
80 icn = slash.win() && 'ico' || 'icns';
81 cmd = exe + " . --overwrite --icon=img/app." + icn;
82 exec('package', cmd);
83 }
84 if (args.prune) {
85 if (args.verbose) {
86 console.log(kolor.y4('prune'));
87 }
88 ref1 = ['inno', 'x64'];
89 for (i = 0, len = ref1.length; i < len; i++) {
90 d = ref1[i];
91 dir = slash.join(bindir, 'resources', 'app', d);
92 if (slash.dirExists(dir)) {
93 if (args.verbose) {
94 console.log(kolor.r5(dir));
95 }
96 fs.removeSync(dir);
97 }
98 }
99 if (prune = (ref2 = config.obj(pkgpth)) != null ? (ref3 = ref2.build) != null ? ref3.prune : void 0 : void 0) {
100 for (j = 0, len1 = prune.length; j < len1; j++) {
101 d = prune[j];
102 dir = slash.join(bindir, 'resources', 'app', d);
103 if (slash.dirExists(dir)) {
104 if (args.verbose) {
105 console.log(kolor.r5(dir));
106 }
107 fs.removeSync(dir);
108 } else {
109 console.log('no path to prune', dir);
110 }
111 }
112 }
113 }
114 if (args.start) {
115 if (args.verbose) {
116 console.log(kolor.y3('start '), kolor.w2(slash.tilde(exepth)));
117 }
118 if (os.platform() === 'win32') {
119 childp.spawn(exepth, {
120 encoding: 'utf8',
121 detached: true
122 });
123 } else {
124 childp.spawn("open", [exepth], {
125 encoding: 'utf8',
126 shell: true,
127 detached: true,
128 stdio: 'inherit'
129 });
130 }
131 }
132 process.exit(0);
133} catch (error) {
134 err = error;
135 console.error(String(err));
136 process.exit(1);
137}
138
139//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiYnVpbGQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7QUFBQSxJQUFBOztBQVFBLE1BQXVELE9BQUEsQ0FBUSxLQUFSLENBQXZELEVBQUUsZUFBRixFQUFRLG1CQUFSLEVBQWdCLFdBQWhCLEVBQW9CLGVBQXBCLEVBQTBCLG1CQUExQixFQUFrQyxpQkFBbEMsRUFBeUMsV0FBekMsRUFBNkM7O0FBRTdDLElBQUEsR0FBTyxJQUFBLENBQUssa1VBQUw7O0FBWVAsTUFBQSxHQUFTLE9BQUEsQ0FBUSxjQUFSOztBQUVULElBQUEsR0FBTyxTQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWDs7UUFBVyxNQUFJO1lBQUMsS0FBQSxFQUFNLElBQVA7WUFBWSxRQUFBLEVBQVMsTUFBckI7OztJQUVsQixJQUFHLElBQUksQ0FBQyxPQUFSO1FBQWMsT0FBQSxDQUFPLEdBQVAsQ0FBVyxLQUFLLENBQUMsRUFBTixDQUFTLEdBQVQsQ0FBWCxFQUFkOztXQUNBLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEdBQWhCLEVBQXFCLEdBQXJCO0FBSEc7O0FBS1A7SUFDSSxNQUFBLEdBQVMsS0FBSyxDQUFDLEdBQU4sQ0FBVSxPQUFPLENBQUMsR0FBUixDQUFBLENBQVY7SUFDVCxNQUFBLEdBQVMsS0FBSyxDQUFDLElBQU4sQ0FBVyxNQUFYLEVBQW1CLGNBQW5CO0lBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBUSxNQUFSO0lBQ1QsTUFBQSxHQUFTLEdBQUcsQ0FBQyxJQUFKLEdBQVcsR0FBWCxHQUFpQixDQUFFLENBQUMsRUFBRSxDQUFDLFFBQUgsQ0FBQSxDQUFELENBQUEsR0FBZSxNQUFqQjtJQUUxQixNQUFBO0FBQVMsZ0JBQU8sRUFBRSxDQUFDLFFBQUgsQ0FBQSxDQUFQO0FBQUEsaUJBQ0EsT0FEQTt1QkFDYztBQURkLGlCQUVBLFFBRkE7dUJBRWM7QUFGZDt1QkFHQTtBQUhBOztJQUlU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MDAwICAgICAgMDAwMDAwMCAgICBcbjAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMCAgXG4wMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAwMDAgICAgICAwMDAgICAwMDAgIFxuMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgMDAwICAgICAgMDAwICAgMDAwICBcbjAwMDAwMDAgICAgIDAwMDAwMDAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAgICAgXG4jIyNcblxueyBhcmdzLCBjaGlsZHAsIGZzLCBrYXJnLCBrZXJyb3IsIGtvbG9yLCBvcywgc2xhc2ggfSA9IHJlcXVpcmUgJ2t4aydcblxuYXJncyA9IGthcmcgXCJcIlwiXG5cbmJ1aWxkXG4gICAgY29tcGlsZSAgLiA/IGNvbXBpbGUgc291cmNlcyAgLiA9IHRydWVcbiAgICBpbnN0YWxsICAuID8gcnVuIG5wbSBpbnN0YWxsICAuID0gdHJ1ZVxuICAgIHJlYnVpbGQgIC4gPyBlbGVjdHJvbi1yZWJ1aWxkIC4gPSB0cnVlXG4gICAgcGFja2FnZSAgLiA/IHBhY2thZ2UgcHJvamVjdCAgLiA9IHRydWVcbiAgICBwcnVuZSAgICAuID8gcHJ1bmUgcGFja2FnZSAgICAuID0gdHJ1ZSAuIC1QXG4gICAgc3RhcnQgICAgLiA/IHJ1biBleGVjdXRhYmxlICAgLiA9IHRydWVcbiAgICB2ZXJib3NlICAgICAgICAgICAgICAgICAgICAgICAuID0gdHJ1ZVxuXCJcIlwiXG5cbmNvbmZpZyA9IHJlcXVpcmUgJy4uL2pzL2NvbmZpZydcblxuZXhlYyA9IChtc2csIGNtZCwgb3B0PXtzaGVsbDp0cnVlIGVuY29kaW5nOid1dGY4J30pIC0+XG4gICAgXG4gICAgaWYgYXJncy52ZXJib3NlIHRoZW4gbG9nIGtvbG9yLnk1IG1zZ1xuICAgIGNoaWxkcC5leGVjU3luYyBjbWQsIG9wdFxuXG50cnkgICAgXG4gICAgcGtnZGlyID0gc2xhc2gucGtnIHByb2Nlc3MuY3dkKClcbiAgICBwa2dwdGggPSBzbGFzaC5qb2luIHBrZ2RpciwgJ3BhY2thZ2UuanNvbidcbiAgICBwa2cgICAgPSByZXF1aXJlIHBrZ3B0aFxuICAgIGJpbmRpciA9IHBrZy5uYW1lICsgJy0nICsgXCIje29zLnBsYXRmb3JtKCl9LXg2NFwiXG4gICAgXG4gICAgZXhlZXh0ID0gc3dpdGNoIG9zLnBsYXRmb3JtKClcbiAgICAgICAgd2hlbiAnd2luMzInICB0aGVuICcuZXhlJ1xuICAgICAgICB3aGVuICdkYXJ3aW4nIHRoZW4gJy5hcHAnXG4gICAgICAgIGVsc2UgJycgIyBsaW51eD9cbiAgICBleGVwdGggPSBzbGFzaC5yZXNvbHZlIHNsYXNoLmpvaW4gYmluZGlyLCBcIiN7cGtnLm5hbWV9I3tleGVleHR9XCJcbiAgICBcbiAgICBpZiBhcmdzLnZlcmJvc2UgdGhlbiBsb2cga29sb3IueTMoJ2N3ZCAgICAgICcpLCBrb2xvci53MiBzbGFzaC50aWxkZSBwa2dkaXJcbiAgICBwcm9jZXNzLmNoZGlyIHBrZ2RpclxuXG4gICAgaWYgc2xhc2guZGlyRXhpc3RzIGJpbmRpclxuICAgICAgICB0cnlcbiAgICAgICAgICAgIGlmIG9zLnBsYXRmb3JtKCkgPT0gJ3dpbjMyJ1xuICAgICAgICAgICAgICAgIGlmIGV4ZWMgJ3F1aXQnIFwidGFza2tpbGwgL2YgL2ltICN7c2xhc2guZmlsZSBleGVwdGh9IC90XCJcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHAuZXhlY1N5bmMgJ3NsZWVwIDInXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY2hpbGRwLmV4ZWNTeW5jIFwia2lsbGFsbCAje3BrZy5uYW1lfVwiXG4gICAgICAgIGNhdGNoIGVyclxuICAgICAgICAgICAga2Vycm9yIFwia2lsbCBmYWlsZWQ6ICN7ZXJyfVwiXG4gICAgICAgIGlmIGFyZ3MudmVyYm9zZSB0aGVuIGxvZyBrb2xvci55NCgncmVtb3ZlICAgJyksIGtvbG9yLmI2IGJpbmRpclxuICAgICAgICBmcy5yZW1vdmVTeW5jIGJpbmRpclxuICAgIFxuICAgIGlmIGFyZ3MuY29tcGlsZSB0aGVuIGV4ZWMgJ2NvbXBpbGUnICdub2RlIC0tdHJhY2Utd2FybmluZ3MgJyArIHNsYXNoLmpvaW4gX19kaXJuYW1lLCAna29ucmFkJ1xuICAgIGlmIGFyZ3MuaW5zdGFsbCB0aGVuIGV4ZWMgJ2luc3RhbGwnICducG0gaW5zdGFsbCdcbiAgICBpZiBhcmdzLnJlYnVpbGQgdGhlbiBleGVjICdyZWJ1aWxkJyBzbGFzaC5yZXNvbHZlICcuL25vZGVfbW9kdWxlcy8uYmluL2VsZWN0cm9uLXJlYnVpbGQnXG4gICAgaWYgYXJncy5wYWNrYWdlXG4gICAgICAgIGV4ZSA9IHNsYXNoLnJlc29sdmUgJy4vbm9kZV9tb2R1bGVzLy5iaW4vZWxlY3Ryb24tcGFja2FnZXInXG4gICAgICAgIGljbiA9IHNsYXNoLndpbigpIGFuZCAnaWNvJyBvciAnaWNucydcbiAgICAgICAgY21kID0gXCIje2V4ZX0gLiAtLW92ZXJ3cml0ZSAtLWljb249aW1nL2FwcC4je2ljbn1cIlxuICAgICAgICBleGVjICdwYWNrYWdlJyBjbWRcbiAgICBpZiBhcmdzLnBydW5lXG4gICAgICAgIGlmIGFyZ3MudmVyYm9zZSB0aGVuIGxvZyBrb2xvci55NCgncHJ1bmUnKVxuICAgICAgICBmb3IgZCBpbiBbJ2lubm8nICd4NjQnXVxuICAgICAgICAgICAgZGlyID0gc2xhc2guam9pbiBiaW5kaXIsICdyZXNvdXJjZXMnICdhcHAnIGQgIyBuZWVkcyB0byBjaGFuZ2Ugb24gbWFjXG4gICAgICAgICAgICBpZiBzbGFzaC5kaXJFeGlzdHMgZGlyXG4gICAgICAgICAgICAgICAgaWYgYXJncy52ZXJib3NlIHRoZW4gbG9nIGtvbG9yLnI1IGRpclxuICAgICAgICAgICAgICAgIGZzLnJlbW92ZVN5bmMgZGlyXG4gICAgICAgICAgICAgICAgXG4gICAgICAgIGlmIHBydW5lID0gY29uZmlnLm9iaihwa2dwdGgpPy5idWlsZD8ucHJ1bmVcbiAgICAgICAgICAgIGZvciBkIGluIHBydW5lICAgICAgICBcbiAgICAgICAgICAgICAgICBkaXIgPSBzbGFzaC5qb2luIGJpbmRpciwgJ3Jlc291cmNlcycgJ2FwcCcgZCAjIG5lZWRzIHRvIGNoYW5nZSBvbiBtYWNcbiAgICAgICAgICAgICAgICBpZiBzbGFzaC5kaXJFeGlzdHMgZGlyXG4gICAgICAgICAgICAgICAgICAgIGlmIGFyZ3MudmVyYm9zZSB0aGVuIGxvZyBrb2xvci5yNSBkaXJcbiAgICAgICAgICAgICAgICAgICAgZnMucmVtb3ZlU3luYyBkaXJcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGxvZyAnbm8gcGF0aCB0byBwcnVuZScgZGlyXG4gICAgICAgICAgICAgICAgXG4gICAgaWYgYXJncy5zdGFydFxuICAgICAgICBpZiBhcmdzLnZlcmJvc2UgdGhlbiBsb2cga29sb3IueTMoJ3N0YXJ0ICAgICAnKSwga29sb3IudzIgc2xhc2gudGlsZGUgZXhlcHRoXG4gICAgICAgIGlmIG9zLnBsYXRmb3JtKCkgPT0gJ3dpbjMyJ1xuICAgICAgICAgICAgY2hpbGRwLnNwYXduIGV4ZXB0aCwgZW5jb2Rpbmc6J3V0ZjgnIGRldGFjaGVkOnRydWVcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgY2hpbGRwLnNwYXduIFwib3BlblwiIFtleGVwdGhdLCBlbmNvZGluZzondXRmOCcgc2hlbGw6dHJ1ZSBkZXRhY2hlZDp0cnVlIHN0ZGlvOidpbmhlcml0J1xuICAgIHByb2Nlc3MuZXhpdCAwXG4gICAgICAgIFxuY2F0Y2ggZXJyXG4gICAgZXJyb3IgU3RyaW5nIGVyclxuICAgIHByb2Nlc3MuZXhpdCAxXG4gICAgICAgICJdfQ==
140//# sourceURL=build.coffee
\No newline at end of file