UNPKG

25.9 kBJavaScriptView Raw
1// koffee 1.14.0
2
3/*
4000 000 0000000 000 000 00000000 0000000 0000000
5000 000 000 000 0000 000 000 000 000 000 000 000
60000000 000 000 000 0 000 0000000 000000000 000 000
7000 000 000 000 000 0000 000 000 000 000 000 000
8000 000 0000000 000 000 000 000 000 000 0000000
9 */
10var _, actions, argDir, args, build, cmd, config, dirty, dotGit, fs, gitcount, gitup, j, klog, kolor, len, noon, opt, optall, pkg, pretty, ref, ref1, runcmd, should, slash, status, walk, watch, wlk;
11
12ref = require('kxk'), _ = ref._, args = ref.args, fs = ref.fs, klog = ref.klog, kolor = ref.kolor, noon = ref.noon, slash = ref.slash, watch = ref.watch;
13
14argDir = require('./argdir');
15
16build = require('./build');
17
18config = require('./config');
19
20pretty = require('./pretty');
21
22runcmd = require('./runcmd');
23
24should = require('./should');
25
26status = require('./status');
27
28watch = require('./watch');
29
30walk = require('./walk');
31
32pkg = require(__dirname + "/../package");
33
34args = args.init("arguments depend on options **\nrun build dirty or missing targets in dir false\nrebuild rebuild all targets in dir false -R\nwatch watch directory for changes false\ninfo show build status of dir false\nbump bump package.* version [major|minor|patch] false\nbuild make package false -m\ndiff show git diff of file/dir false\nstatus show git status of file/dir false\nfetch fetch and show git status of file/dir false\ncommit add, commit and push [msg] false\nupdate update npm packages false\npublish bump, commit & publish to npm [msg] false\ntest run tests false\nverbose log more false\nquiet log nothing false\ndebug log debug false -D\nlogtime log with time true", {
35 pkg: pkg
36});
37
38actions = ['bump', 'build', 'commit', 'publish', 'update', 'test', 'watch', 'run', 'rebuild', 'info', 'status', 'fetch', 'diff'];
39
40if (!actions.map(function(a) {
41 return args[a];
42}).reduce(function(acc, val) {
43 return acc || val;
44})) {
45 args.run = true;
46}
47
48opt = noon.parse("coffee . ext js . map true . replace .. /coffee/ /js/ .. ^coffee/ js/ \nkoffee . ext js . map true . replace .. /coffee/ /js/ .. ^coffee/ js/ \nnoon . ext json\njson . ext noon . filter .. package.json$\nstyl . ext css . replace .. /style/ /css/ .. /styl/ /js/css/\npug . ext html . replace .. /pug/ /js/");
49
50opt.ignore = [/.*\.konrad\.noon$/, /.*menu\.noon$/];
51
52wlk = {
53 ignore: [/node_modules$/, /bower_components$/, /\/img$/, /\/\..+$/, /\.git$/, /\.app$/, /.*-x64$/, /.*-arm64$/, /.*-ia32$/, /\/?inno$/, /\/?js$/]
54};
55
56dirty = function(sourceFile, targetFile) {
57 var ss, ts;
58 if (!fs.existsSync(targetFile)) {
59 return true;
60 }
61 ss = fs.statSync(sourceFile);
62 ts = fs.statSync(targetFile);
63 return ss.mtime.getTime() > ts.mtime.getTime();
64};
65
66if (args.info) {
67 console.log(kolor.gray('○● info'));
68 walk(wlk, opt, function(sourceFile, targetFile) {
69 if (args.verbose) {
70 console.log("source: " + sourceFile + " target: " + targetFile);
71 }
72 if (dirty(sourceFile, targetFile)) {
73 return console.log(pretty.filePath(_.padEnd(slash.relative(sourceFile, argDir()), 40), kolor.yellow), kolor.red(kolor.dim(" ► ")), pretty.filePath(slash.relative(targetFile, argDir()), kolor.red));
74 } else if (args.verbose) {
75 return console.log(pretty.filePath(_.padEnd(slash.relative(sourceFile, argDir()), 40), kolor.magenta), kolor.green(kolor.dim(" ► ")), pretty.filePath(slash.relative(targetFile, argDir()), kolor.green));
76 }
77 });
78}
79
80if (args.diff) {
81 args.status = true;
82}
83
84if (args.status || args.fetch) {
85 optall = _.defaults(opt, {
86 all: true
87 });
88 gitcount = 0;
89 walk(wlk, optall, function(sourceFile, targetFile) {
90 var i, j, len, ref1;
91 if (!targetFile) {
92 if (slash.basename(sourceFile) === '.git') {
93 if (args.fetch) {
94 status.gitFetch(sourceFile);
95 } else {
96 status.gitStatus(sourceFile);
97 }
98 gitcount += 1;
99 }
100 if (slash.dirExists(sourceFile)) {
101 ref1 = opt.ignore;
102 for (j = 0, len = ref1.length; j < len; j++) {
103 i = ref1[j];
104 if ((i != null ? i.test : void 0) != null) {
105 if (i.test(sourceFile)) {
106 return false;
107 }
108 } else {
109 klog('ignore?', i);
110 }
111 }
112 }
113 }
114 return true;
115 });
116 if (!gitcount) {
117 gitup = slash.parse(argDir());
118 while (gitup.base) {
119 dotGit = slash.join(gitup.dir, '.git');
120 if (fs.existsSync(dotGit)) {
121 if (args.fetch) {
122 status.gitFetch(dotGit);
123 } else {
124 status.gitStatus(dotGit);
125 }
126 break;
127 }
128 gitup = slash.parse(gitup.dir);
129 }
130 }
131}
132
133if (args.run || args.rebuild) {
134 if (!args.quiet) {
135 console.log('🔧🔧 ' + kolor.gray(args.rebuild && 'rebuild' || 'run'));
136 }
137 walk(wlk, opt, function(sourceFile, targetFile) {
138 var isDirty, src, tgt;
139 if (targetFile) {
140 isDirty = dirty(sourceFile, targetFile);
141 if (args.rebuild || isDirty) {
142 src = pretty.filePath(_.padEnd(slash.relative(sourceFile, argDir()), 40), isDirty && kolor.red || kolor.yellow);
143 tgt = pretty.filePath(slash.relative(targetFile, argDir()), kolor.green);
144 if (!args.quiet) {
145 console.log(src, "🔧 ", tgt);
146 }
147 return build(sourceFile, opt, function(sourceFile, targetFile) {
148 var o;
149 if (!targetFile) {
150 process.exit(1);
151 }
152 o = config.obj(targetFile, opt);
153 if (should('browserify', o, targetFile)) {
154 console.log(pretty.filePath(_.padEnd(slash.relative(o.browserify.main, argDir()), 40), kolor.yellow), "🔧 ", pretty.filePath(slash.relative(o.browserify.out, argDir()), kolor.blue));
155 return runcmd('browserify', o.browserify.main + " " + o.browserify.out, config.path('browserify', slash.resolve(targetFile), opt));
156 }
157 });
158 }
159 }
160 });
161}
162
163ref1 = ['update', 'bump', 'build', 'test', 'commit', 'publish'];
164for (j = 0, len = ref1.length; j < len; j++) {
165 cmd = ref1[j];
166 if (args[cmd]) {
167 if (!runcmd(cmd, args["arguments"].join(' '), process.cwd())) {
168 process.exit(1);
169 break;
170 }
171 if (args.verbose) {
172 console.log(kolor.gray('🔧 done'));
173 }
174 if (args["arguments"] && (cmd === 'commit' || cmd === 'bump' || cmd === 'build')) {
175 break;
176 }
177 }
178}
179
180if (args.watch) {
181 watch(wlk, opt);
182} else if (cmd === 'build') {
183 process.exit(0);
184}
185
186//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29ucmFkLmpzIiwic291cmNlUm9vdCI6Ii4uL2NvZmZlZSIsInNvdXJjZXMiOlsia29ucmFkLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7O0FBQUEsSUFBQTs7QUFRQSxNQUFtRCxPQUFBLENBQVEsS0FBUixDQUFuRCxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsV0FBWCxFQUFlLGVBQWYsRUFBcUIsaUJBQXJCLEVBQTRCLGVBQTVCLEVBQWtDLGlCQUFsQyxFQUF5Qzs7QUFFekMsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULEtBQUEsR0FBUyxPQUFBLENBQVEsU0FBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULEtBQUEsR0FBUyxPQUFBLENBQVEsU0FBUjs7QUFDVCxJQUFBLEdBQVMsT0FBQSxDQUFRLFFBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBVyxTQUFELEdBQVcsYUFBckI7O0FBRVQsSUFBQSxHQUFPLElBQUksQ0FBQyxJQUFMLENBQVUsc25DQUFWLEVBbUJFO0lBQUEsR0FBQSxFQUFJLEdBQUo7Q0FuQkY7O0FBcUJQLE9BQUEsR0FBVSxDQUFDLE1BQUQsRUFBUSxPQUFSLEVBQWdCLFFBQWhCLEVBQXlCLFNBQXpCLEVBQW1DLFFBQW5DLEVBQTRDLE1BQTVDLEVBQW1ELE9BQW5ELEVBQTJELEtBQTNELEVBQWlFLFNBQWpFLEVBQTJFLE1BQTNFLEVBQWtGLFFBQWxGLEVBQTJGLE9BQTNGLEVBQW1HLE1BQW5HOztBQUVWLElBQUcsQ0FBSSxPQUFPLENBQUMsR0FBUixDQUFZLFNBQUMsQ0FBRDtXQUFPLElBQUssQ0FBQSxDQUFBO0FBQVosQ0FBWixDQUEyQixDQUFD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LENBQUosRUFBQTs7UUFFQSxJQUFHLElBQUksRUFBQyxTQUFELEVBQUosSUFBbUIsQ0FBQSxHQUFBLEtBQVEsUUFBUixJQUFBLEdBQUEsS0FBaUIsTUFBakIsSUFBQSxHQUFBLEtBQXdCLE9BQXhCLENBQXRCO0FBQ0ksa0JBREo7U0FSSjs7QUFGSjs7QUFhQSxJQUFHLElBQUksQ0FBQyxLQUFSO0lBQ0ksS0FBQSxDQUFNLEdBQU4sRUFBVyxHQUFYLEVBREo7Q0FBQSxNQUVLLElBQUcsR0FBQSxLQUFRLE9BQVg7SUFDRCxPQUFPLENBQUMsSUFBUixDQUFhLENBQWIsRUFEQyIsInNvdXJjZXNDb250ZW50IjpbIiMjI1xuMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgMDAwMDAwMDAgICAgMDAwMDAwMCAgIDAwMDAwMDBcbjAwMCAgMDAwICAgMDAwICAgMDAwICAwMDAwICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDBcbjAwMDAwMDAgICAgMDAwICAgMDAwICAwMDAgMCAwMDAgIDAwMDAwMDAgICAgMDAwMDAwMDAwICAwMDAgICAwMDBcbjAwMCAgMDAwICAgMDAwICAgMDAwICAwMDAgIDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDBcbjAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwXG4jIyNcblxueyBfLCBhcmdzLCBmcywga2xvZywga29sb3IsIG5vb24sIHNsYXNoLCB3YXRjaCB9ID0gcmVxdWlyZSAna3hrJ1xuXG5hcmdEaXIgPSByZXF1aXJlICcuL2FyZ2RpcidcbmJ1aWxkICA9IHJlcXVpcmUgJy4vYnVpbGQnXG5jb25maWcgPSByZXF1aXJlICcuL2NvbmZpZydcbnByZXR0eSA9IHJlcXVpcmUgJy4vcHJldHR5J1xucnVuY21kID0gcmVxdWlyZSAnLi9ydW5jbWQnIFxuc2hvdWxkID0gcmVxdWlyZSAnLi9zaG91bGQnXG5zdGF0dXMgPSByZXF1aXJlICcuL3N0YXR1cydcbndhdGNoICA9IHJlcXVpcmUgJy4vd2F0Y2gnXG53YWxrICAgPSByZXF1aXJlICcuL3dhbGsnXG5wa2cgICAgPSByZXF1aXJlIFwiI3tfX2Rpcm5hbWV9Ly4uL3BhY2thZ2VcIlxuXG5hcmdzID0gYXJncy5pbml0IFwiXCJcIlxuICAgIGFyZ3VtZW50cyAgZGVwZW5kIG9uIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipcbiAgICBydW4gICAgICAgIGJ1aWxkIGRpcnR5IG9yIG1pc3NpbmcgdGFyZ2V0cyBpbiBkaXIgICAgICAgIGZhbHNlXG4gICAgcmVidWlsZCAgICByZWJ1aWxkIGFsbCB0YXJnZXRzIGluIGRpciAgICAgICAgICAgICAgICAgICBmYWxzZSAgLVJcbiAgICB3YXRjaCAgICAgIHdhdGNoIGRpcmVjdG9yeSBmb3IgY2hhbmdlcyAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgaW5mbyAgICAgICBzaG93IGJ1aWxkIHN0YXR1cyBvZiBkaXIgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIGJ1bXAgICAgICAgYnVtcCBwYWNrYWdlLiogdmVyc2lvbiBbbWFqb3J8bWlub3J8cGF0Y2hdICAgZmFsc2VcbiAgICBidWlsZCAgICAgIG1ha2UgcGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICAtbVxuICAgIGRpZmYgICAgICAgc2hvdyBnaXQgZGlmZiBvZiBmaWxlL2RpciAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICBzdGF0dXMgICAgIHNob3cgZ2l0IHN0YXR1cyBvZiBmaWxlL2RpciAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgZmV0Y2ggICAgICBmZXRjaCBhbmQgc2hvdyBnaXQgc3RhdHVzIG9mIGZpbGUvZGlyICAgICAgICBmYWxzZVxuICAgIGNvbW1pdCAgICAgYWRkLCBjb21taXQgYW5kIHB1c2ggW21zZ10gICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICB1cGRhdGUgICAgIHVwZGF0ZSBucG0gcGFja2FnZXMgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgcHVibGlzaCAgICBidW1wLCBjb21taXQgJiBwdWJsaXNoIHRvIG5wbSBbbXNnXSAgICAgICAgICBmYWxzZVxuICAgIHRlc3QgICAgICAgcnVuIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICB2ZXJib3NlICAgIGxvZyBtb3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgcXVpZXQgICAgICBsb2cgbm90aGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIGRlYnVnICAgICAgbG9nIGRlYnVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIC1EXG4gICAgbG9ndGltZSAgICBsb2cgd2l0aCB0aW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgXCJcIlwiLCBwa2c6cGtnXG5cbmFjdGlvbnMgPSBbJ2J1bXAnICdidWlsZCcgJ2NvbW1pdCcgJ3B1Ymxpc2gnICd1cGRhdGUnICd0ZXN0JyAnd2F0Y2gnICdydW4nICdyZWJ1aWxkJyAnaW5mbycgJ3N0YXR1cycgJ2ZldGNoJyAnZGlmZiddXG5cbmlmIG5vdCBhY3Rpb25zLm1hcCgoYSkgLT4gYXJnc1thXSkucmVkdWNlKChhY2MsdmFsKSAtPiBhY2Mgb3IgdmFsKVxuICAgIGFyZ3MucnVuID0gdHJ1ZSAjIG1ha2VzIHJ1biB0aGUgZGVmYXVsdCBhY3Rpb24gaWYgbm8gb3RoZXIgYWN0aW9uIGlzIHNldFxuICAgIFxuIyAwMDAwMDAwICAgIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMCAgICAgIDAwMDAwMDAwMCAgIDAwMDAwMDBcbiMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAwMDAgICAgIDAwMFxuIyAwMDAgICAwMDAgIDAwMDAwMDAgICAwMDAwMDAgICAgMDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAgIDAwMCAgICAgMDAwMDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAgIDAwMCAgICAgICAgICAwMDBcbiMgMDAwMDAwMCAgICAwMDAwMDAwMCAgMDAwICAgICAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgICAwMDAgICAgIDAwMDAwMDBcblxub3B0ID0gbm9vbi5wYXJzZSBcIlwiXCJcbmNvZmZlZSAgLiBleHQganMgICAuIG1hcCB0cnVlIC4gcmVwbGFjZSAuLiAvY29mZmVlLyAvanMvIC4uIF5jb2ZmZWUvIGpzLyBcbmtvZmZlZSAgLiBleHQganMgICAuIG1hcCB0cnVlIC4gcmVwbGFjZSAuLiAvY29mZmVlLyAvanMvIC4uIF5jb2ZmZWUvIGpzLyBcbm5vb24gICAgLiBleHQganNvblxuanNvbiAgICAuIGV4dCBub29uIC4gZmlsdGVyICAuLiBwYWNrYWdlLmpzb24kXG5zdHlsICAgIC4gZXh0IGNzcyAgLiByZXBsYWNlIC4uIC9zdHlsZS8gL2Nzcy8gLi4gL3N0eWwvIC9qcy9jc3MvXG5wdWcgICAgIC4gZXh0IGh0bWwgLiByZXBsYWNlIC4uIC9wdWcvIC9qcy9cblwiXCJcIlxuXG4jIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgIDAwMCAgICAgICAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwXG4jIDAwMCAgMDAwICAwMDAwICAwMDAgMCAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAwMDAwMDAwXG4jIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDBcbiMgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMDAwMDAwXG5cbm9wdC5pZ25vcmUgPSBbXG4gICAgLy4qXFwua29ucmFkXFwubm9vbiQvXG4gICAgLy4qbWVudVxcLm5vb24kL1xuXVxuXG53bGsgPVxuICAgIGlnbm9yZTogW1xuICAgICAgICAvbm9kZV9tb2R1bGVzJC9cbiAgICAgICAgL2Jvd2VyX2NvbXBvbmVudHMkL1xuICAgICAgICAvXFwvaW1nJC9cbiAgICAgICAgL1xcL1xcLi4rJC9cbiAgICAgICAgL1xcLmdpdCQvXG4gICAgICAgIC9cXC5hcHAkL1xuICAgICAgICAvLioteDY0JC9cbiAgICAgICAgLy4qLWFybTY0JC9cbiAgICAgICAgLy4qLWlhMzIkL1xuICAgICAgICAvXFwvP2lubm8kL1xuICAgICAgICAvXFwvP2pzJC9cbiAgICBdXG5cbiMgMDAwMDAwMCAgICAwMDAgIDAwMDAwMDAwICAgMDAwMDAwMDAwICAwMDAgICAwMDBcbiMgMDAwICAgMDAwICAwMDAgIDAwMCAgIDAwMCAgICAgMDAwICAgICAgMDAwIDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgMDAwMDAwMCAgICAgICAwMDAgICAgICAgMDAwMDBcbiMgMDAwICAgMDAwICAwMDAgIDAwMCAgIDAwMCAgICAgMDAwICAgICAgICAwMDBcbiMgMDAwMDAwMCAgICAwMDAgIDAwMCAgIDAwMCAgICAgMDAwICAgICAgICAwMDBcblxuZGlydHkgPSAoc291cmNlRmlsZSwgdGFyZ2V0RmlsZSkgLT5cbiAgICBcbiAgICBpZiBub3QgZnMuZXhpc3RzU3luYyB0YXJnZXRGaWxlIHRoZW4gcmV0dXJuIHRydWVcbiAgICBzcyA9IGZzLnN0YXRTeW5jIHNvdXJjZUZpbGVcbiAgICB0cyA9IGZzLnN0YXRTeW5jIHRhcmdldEZpbGVcbiAgICBzcy5tdGltZS5nZXRUaW1lKCkgPiB0cy5tdGltZS5nZXRUaW1lKClcblxuIyAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMDAgICAwMDAwMDAwXG4jIDAwMCAgMDAwMCAgMDAwICAwMDAgICAgICAgMDAwICAgMDAwXG4jIDAwMCAgMDAwIDAgMDAwICAwMDAwMDAgICAgMDAwICAgMDAwXG4jIDAwMCAgMDAwICAwMDAwICAwMDAgICAgICAgMDAwICAgMDAwXG4jIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgIDAwMDAwMDBcblxuaWYgYXJncy5pbmZvXG5cbiAgICBsb2cga29sb3IuZ3JheSAn4peL4pePIGluZm8nXG5cbiAgICB3YWxrIHdsaywgb3B0LCAoc291cmNlRmlsZSwgdGFyZ2V0RmlsZSkgLT5cblxuICAgICAgICBsb2cgXCJzb3VyY2U6ICN7c291cmNlRmlsZX0gdGFyZ2V0OiAje3RhcmdldEZpbGV9XCIgaWYgYXJncy52ZXJib3NlXG4gICAgICAgIGlmIGRpcnR5IHNvdXJjZUZpbGUsIHRhcmdldEZpbGVcbiAgICAgICAgICAgIGxvZyBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUoc291cmNlRmlsZSwgYXJnRGlyKCkpLCA0MCksIGtvbG9yLnllbGxvdyksIGtvbG9yLnJlZChrb2xvci5kaW0oXCIg4pa6IFwiKSksIHByZXR0eS5maWxlUGF0aChzbGFzaC5yZWxhdGl2ZSh0YXJnZXRGaWxlLCBhcmdEaXIoKSksIGtvbG9yLnJlZClcbiAgICAgICAgZWxzZSBpZiBhcmdzLnZlcmJvc2VcbiAgICAgICAgICAgIGxvZyBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUoc291cmNlRmlsZSwgYXJnRGlyKCkpLCA0MCksIGtvbG9yLm1hZ2VudGEpLCBrb2xvci5ncmVlbihrb2xvci5kaW0oXCIg4pa6IFwiKSksIHByZXR0eS5maWxlUGF0aChzbGFzaC5yZWxhdGl2ZSh0YXJnZXRGaWxlLCBhcmdEaXIoKSksIGtvbG9yLmdyZWVuKVxuXG5pZiBhcmdzLmRpZmZcbiAgICBcbiAgICBhcmdzLnN0YXR1cyA9IHRydWVcblxuIyBrbG9nIGFyZ3NcbiAgICBcbmlmIGFyZ3Muc3RhdHVzIG9yIGFyZ3MuZmV0Y2hcbiAgICBcbiAgICBvcHRhbGwgPSBfLmRlZmF1bHRzIG9wdCwgYWxsOiB0cnVlXG4gICAgZ2l0Y291bnQgPSAwXG5cbiAgICB3YWxrIHdsaywgb3B0YWxsLCAoc291cmNlRmlsZSwgdGFyZ2V0RmlsZSkgLT5cblxuICAgICAgICBpZiBub3QgdGFyZ2V0RmlsZVxuXG4gICAgICAgICAgICBpZiBzbGFzaC5iYXNlbmFtZShzb3VyY2VGaWxlKSA9PSAnLmdpdCdcbiAgICAgICAgICAgICAgICBpZiBhcmdzLmZldGNoXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5naXRGZXRjaCBzb3VyY2VGaWxlXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZ2l0U3RhdHVzIHNvdXJjZUZpbGVcbiAgICAgICAgICAgICAgICBnaXRjb3VudCArPSAxXG5cbiAgICAgICAgICAgIGlmIHNsYXNoLmRpckV4aXN0cyBzb3VyY2VGaWxlXG4gICAgICAgICAgICAgICAgZm9yIGkgaW4gb3B0Lmlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBpZiBpPy50ZXN0P1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgaS50ZXN0IHNvdXJjZUZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAga2xvZyAnaWdub3JlPycgaVxuICAgICAgICB0cnVlXG5cbiAgICBpZiBub3QgZ2l0Y291bnRcbiAgICAgICAgZ2l0dXAgPSBzbGFzaC5wYXJzZSBhcmdEaXIoKVxuICAgICAgICB3aGlsZSBnaXR1cC5iYXNlXG4gICAgICAgICAgICBkb3RHaXQgPSBzbGFzaC5qb2luIGdpdHVwLmRpciwgJy5naXQnXG4gICAgICAgICAgICBpZiBmcy5leGlzdHNTeW5jIGRvdEdpdFxuICAgICAgICAgICAgICAgIGlmIGFyZ3MuZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmdpdEZldGNoIGRvdEdpdFxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmdpdFN0YXR1cyBkb3RHaXRcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgZ2l0dXAgPSBzbGFzaC5wYXJzZSBnaXR1cC5kaXJcbiAgICAgICAgICAgIFxuIyAwMDAwMDAwMCAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4jIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAwICAwMDBcbiMgMDAwMDAwMCAgICAwMDAgICAwMDAgIDAwMCAwIDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAwXG4jIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDBcblxuaWYgYXJncy5ydW4gb3IgYXJncy5yZWJ1aWxkXG5cbiAgICBpZiBub3QgYXJncy5xdWlldFxuICAgICAgICBsb2cgJ/CflKfwn5SnICcgKyBrb2xvci5ncmF5KGFyZ3MucmVidWlsZCBhbmQgJ3JlYnVpbGQnIG9yICdydW4nKVxuICAgIFxuICAgIHdhbGsgd2xrLCBvcHQsIChzb3VyY2VGaWxlLCB0YXJnZXRGaWxlKSAtPlxuICAgICAgICBpZiB0YXJnZXRGaWxlXG4gICAgICAgICAgICBpc0RpcnR5ID0gZGlydHkgc291cmNlRmlsZSwgdGFyZ2V0RmlsZVxuICAgICAgICAgICAgaWYgYXJncy5yZWJ1aWxkIG9yIGlzRGlydHlcbiAgICAgICAgICAgICAgICBzcmMgPSBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUoc291cmNlRmlsZSwgYXJnRGlyKCkpLCA0MCksIGlzRGlydHkgYW5kIGtvbG9yLnJlZCBvciBrb2xvci55ZWxsb3cpXG4gICAgICAgICAgICAgICAgdGd0ID0gcHJldHR5LmZpbGVQYXRoKHNsYXNoLnJlbGF0aXZlKHRhcmdldEZpbGUsIGFyZ0RpcigpKSwga29sb3IuZ3JlZW4pXG4gICAgICAgICAgICAgICAgaWYgbm90IGFyZ3MucXVpZXRcbiAgICAgICAgICAgICAgICAgICAgbG9nIHNyYywgXCLwn5SnICBcIiwgdGd0XG4gICAgICAgICAgICAgICAgYnVpbGQgc291cmNlRmlsZSwgb3B0LCAoc291cmNlRmlsZSwgdGFyZ2V0RmlsZSkgLT5cbiAgICAgICAgICAgICAgICAgICAgaWYgbm90IHRhcmdldEZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCAxXG4gICAgICAgICAgICAgICAgICAgIG8gPSBjb25maWcub2JqIHRhcmdldEZpbGUsIG9wdFxuICAgICAgICAgICAgICAgICAgICBpZiBzaG91bGQgJ2Jyb3dzZXJpZnknLCBvLCB0YXJnZXRGaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUoby5icm93c2VyaWZ5Lm1haW4sIGFyZ0RpcigpKSwgNDApLCBrb2xvci55ZWxsb3cpLCBcIvCflKcgIFwiLCBwcmV0dHkuZmlsZVBhdGgoc2xhc2gucmVsYXRpdmUoby5icm93c2VyaWZ5Lm91dCwgYXJnRGlyKCkpLCBrb2xvci5ibHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcnVuY21kICdicm93c2VyaWZ5JyBcIiN7by5icm93c2VyaWZ5Lm1haW59ICN7by5icm93c2VyaWZ5Lm91dH1cIiBjb25maWcucGF0aCAnYnJvd3NlcmlmeScsIHNsYXNoLnJlc29sdmUodGFyZ2V0RmlsZSksIG9wdFxuICAgICAgICAgICAgICAgICAgICAgICAgXG5mb3IgY21kIGluIFsndXBkYXRlJyAnYnVtcCcgJ2J1aWxkJyAndGVzdCcgJ2NvbW1pdCcgJ3B1Ymxpc2gnXVxuXG4gICAgaWYgYXJnc1tjbWRdXG4gICAgICAgIFxuICAgICAgICBpZiBub3QgcnVuY21kIGNtZCwgYXJncy5hcmd1bWVudHMuam9pbignICcpLCBwcm9jZXNzLmN3ZCgpXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQgMVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICBsb2cga29sb3IuZ3JheSAn8J+UpyAgZG9uZScgaWYgYXJncy52ZXJib3NlXG5cbiAgICAgICAgaWYgYXJncy5hcmd1bWVudHMgYW5kIGNtZCBpbiBbJ2NvbW1pdCcgJ2J1bXAnICdidWlsZCddXG4gICAgICAgICAgICBicmVha1xuXG5pZiBhcmdzLndhdGNoXG4gICAgd2F0Y2ggd2xrLCBvcHRcbmVsc2UgaWYgY21kIGluIFsnYnVpbGQnXVxuICAgIHByb2Nlc3MuZXhpdCAwXG4gICAgIl19
187//# sourceURL=../coffee/konrad.coffee
\No newline at end of file