UNPKG

25.7 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$/, /.*-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.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.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', 'commit', 'publish', 'test'];
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29ucmFkLmpzIiwic291cmNlUm9vdCI6Ii4uL2NvZmZlZSIsInNvdXJjZXMiOlsia29ucmFkLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7O0FBQUEsSUFBQTs7QUFRQSxNQUFtRCxPQUFBLENBQVEsS0FBUixDQUFuRCxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsV0FBWCxFQUFlLGVBQWYsRUFBcUIsaUJBQXJCLEVBQTRCLGVBQTVCLEVBQWtDLGlCQUFsQyxFQUF5Qzs7QUFFekMsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULEtBQUEsR0FBUyxPQUFBLENBQVEsU0FBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULEtBQUEsR0FBUyxPQUFBLENBQVEsU0FBUjs7QUFDVCxJQUFBLEdBQVMsT0FBQSxDQUFRLFFBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBVyxTQUFELEdBQVcsYUFBckI7O0FBRVQsSUFBQSxHQUFPLElBQUksQ0FBQyxJQUFMLENBQVUsc25DQUFWLEVBbUJFO0lBQUEsR0FBQSxFQUFJLEdBQUo7Q0FuQkY7O0FBcUJQLE9BQUEsR0FBVSxDQUFDLE1BQUQsRUFBUSxPQUFSLEVBQWdCLFFBQWhCLEVBQXlCLFNBQXpCLEVBQW1DLFFBQW5DLEVBQTRDLE1BQTVDLEVBQW1ELE9BQW5ELEVBQTJELEtBQTNELEVBQWlFLFNBQWpFLEVBQTJFLE1BQTNFLEVBQWtGLFFBQWxGLEVBQTJGLE9BQTNGLEVBQW1HLE1BQW5HOztBQUVWLElBQUcsQ0FBSSxPQUFPLENBQUMsR0FBUixDQUFZLFNBQUMsQ0FBRDtXQUFPLElBQUssQ0FBQSxDQUFBO0FBQVosQ0FBWixDQUEyQixDQUFDLE1BQTVCLENBQW1DLFNBQUMsR0FBRCxFQUFLLEdBQUw7V0FBYSxHQUFBLElBQU87QUFBcEIsQ0FBbkMsQ0FBUDtJQUNJLElBQUksQ0FBQyxHQUFMLEdBQVcsS0FEZjs7O0FBU0EsR0FBQSxHQUFNLElBQUksQ0FBQyxLQUFMLENBQVcsdVVBQVg7O0FBZU4sR0FBRyxDQUFDLE1BQUosR0FBYSxDQUNULG1CQURTLEVBRVQsZUFGUzs7QUFLYixHQUFBLEdBQ0k7SUFBQSxNQUFBLEVBQVEsQ0FDSixlQURJLEVBRUosbUJBRkksRUFHSixRQUhJLEVBSUosU0FKSSxFQUtKLFFBTEksRUFNSixRQU5JLEVBT0osU0FQSSxFQVFKLFVBUkksRUFTSixVQVRJLEVBVUosUUFWSSxDQUFSOzs7QUFtQkosS0FBQSxHQUFRLFNBQUMsVUFBRCxFQUFhLFVBQWI7QUFFSixRQUFBO0lBQUEsSUFBRyxDQUFJLEVBQUUsQ0FBQyxVQUFILENBQWMsVUFBZCxDQUFQO0FBQXFDLGVBQU8sS0FBNUM7O0lBQ0EsRUFBQSxHQUFLLEVBQUUsQ0FBQyxRQUFILENBQVksVUFBWjtJQUNMLEVBQUEsR0FBSyxFQUFFLENBQUMsUUFBSCxDQUFZLFVBQVo7V0FDTCxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQVQsQ0FBQSxDQUFBLEdBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBVCxDQUFBO0FBTGpCOztBQWFSLElBQUcsSUFBSSxDQUFDLElBQVI7SUFFRyxPQUFBLENBQUMsR0FBRCxDQUFLLEtBQUssQ0FBQyxJQUFOLENBQVcsU0FBWCxDQUFMO0lBRUMsSUFBQSxDQUFLLEdBQUwsRUFBVSxHQUFWLEVBQWUsU0FBQyxVQUFELEVBQWEsVUFBYjtRQUVaLElBQXNELElBQUksQ0FBQyxPQUEzRDtZQUFBLE9BQUEsQ0FBQyxHQUFELENBQUssVUFBQSxHQUFXLFVBQVgsR0FBc0IsV0FBdEIsR0FBaUMsVUFBdEMsRUFBQTs7UUFDQyxJQUFHLEtBQUEsQ0FBTSxVQUFOLEVBQWtCLFVBQWxCLENBQUg7bUJBQ0csT0FBQSxDQUFDLEdBQUQsQ0FBSyxNQUFNLENBQUMsUUFBUCxDQUFnQixDQUFDLENBQUMsTUFBRixDQUFTLEtBQUssQ0FBQyxRQUFOLENBQWUsVUFBZixFQUEyQixNQUFBLENBQUEsQ0FBM0IsQ0FBVCxFQUErQyxFQUEvQyxDQUFoQixFQUFvRSxLQUFLLENBQUMsTUFBMUUsQ0FBTCxFQUF3RixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVYsQ0FBYyxLQUFkLENBQXhGLEVBQThHLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEtBQUssQ0FBQyxRQUFOLENBQWUsVUFBZixFQUEyQixNQUFBLENBQUEsQ0FBM0IsQ0FBaEIsRUFBc0QsS0FBSyxDQUFDLEdBQTVELENBQTlHLEVBREg7U0FBQSxNQUVLLElBQUcsSUFBSSxDQUFDLE9BQVI7bUJBQ0YsT0FBQSxDQUFDLEdBQUQsQ0FBSyxNQUFNLENBQUMsUUFBUCxDQUFnQixDQUFDLENBQUMsTUFBRixDQUFTLEtBQUssQ0FBQyxRQUFOLENBQWUsVUFBZixFQUEyQixNQUFBLENBQUEsQ0FBM0IsQ0FBVCxFQUErQyxFQUEvQyxDQUFoQixFQUFvRSxLQUFLLENBQUMsT0FBMUUsQ0FBTCxFQUF5RixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVosQ0FBZ0IsS0FBaEIsQ0FBekYsRUFBaUgsTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsS0FBSyxDQUFDLFFBQU4sQ0FBZSxVQUFmLEVBQTJCLE1BQUEsQ0FBQSxDQUEzQixDQUFoQixFQUFzRCxLQUFLLENBQUMsS0FBNUQsQ0FBakgsRUFERTs7SUFMTSxDQUFmLEVBSko7OztBQVlBLElBQUcsSUFBSSxDQUFDLElBQVI7SUFFSSxJQUFJLENBQUMsTUFBTCxHQUFjLEtBRmxCOzs7QUFNQSxJQUFHLElBQUksQ0FBQyxNQUFMLElBQWUsSUFBSSxDQUFDLEtBQXZCO0lBRUksTUFBQSxHQUFTLENBQUMsQ0FBQyxRQUFGLENBQVcsR0FBWCxFQUFnQjtRQUFBLEdBQUEsRUFBSyxJQUFMO0tBQWhCO0lBQ1QsUUFBQSxHQUFXO0lBRVgsSUFBQSxDQUFLLEdBQUwsRUFBVSxNQUFWLEVBQWtCLFNBQUMsVUFBRCxFQUFhLFVBQWI7QUFFZCxZQUFBO1FBQUEsSUFBRyxDQUFJLFVBQVA7WUFFSSxJQUFHLEtBQUssQ0FBQyxRQUFOLENBQWUsVUFBZixDQUFBLEtBQThCLE1BQWpDO2dCQUNJLElBQUcsSUFBSSxDQUFDLEtBQVI7b0JBQ0ksTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsVUFBaEIsRUFESjtpQkFBQSxNQUFBO29CQUdJLE1BQU0sQ0FBQyxTQUFQLENBQWlCLFVBQWpCLEVBSEo7O2dCQUlBLFFBQUEsSUFBWSxFQUxoQjs7WUFPQSxJQUFHLEtBQUssQ0FBQyxTQUFOLENBQWdCLFVBQWhCLENBQUg7QUFDSTtBQUFBLHFCQUFBLHNDQUFBOztvQkFDSSxJQUFHLHFDQUFIO3dCQUNJLElBQUcsQ0FBQyxDQUFDLElBQUYsQ0FBTyxVQUFQLENBQUg7QUFDSSxtQ0FBTyxNQURYO3lCQURKO3FCQUFBLE1BQUE7d0JBSUksSUFBQSxDQUFLLFNBQUwsRUFBZSxDQUFmLEVBSko7O0FBREosaUJBREo7YUFUSjs7ZUFnQkE7SUFsQmMsQ0FBbEI7SUFvQkEsSUFBRyxDQUFJLFFBQVA7UUFDSSxLQUFBLEdBQVEsS0FBSyxDQUFDLEtBQU4sQ0FBWSxNQUFBLENBQUEsQ0FBWjtBQUNSLGVBQU0sS0FBSyxDQUFDLElBQVo7WUFDSSxNQUFBLEdBQVMsS0FBSyxDQUFDLElBQU4sQ0FBVyxLQUFLLENBQUMsR0FBakIsRUFBc0IsTUFBdEI7WUFDVCxJQUFHLEVBQUUsQ0FBQyxVQUFILENBQWMsTUFBZCxDQUFIO2dCQUNJLElBQUcsSUFBSSxDQUFDLEtBQVI7b0JBQ0ksTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsTUFBaEIsRUFESjtpQkFBQSxNQUFBO29CQUdJLE1BQU0sQ0FBQyxTQUFQLENBQWlCLE1BQWpCLEVBSEo7O0FBSUEsc0JBTEo7O1lBTUEsS0FBQSxHQUFRLEtBQUssQ0FBQyxLQUFOLENBQVksS0FBSyxDQUFDLEdBQWxCO1FBUlosQ0FGSjtLQXpCSjs7O0FBMkNBLElBQUcsSUFBSSxDQUFDLEdBQUwsSUFBWSxJQUFJLENBQUMsT0FBcEI7SUFFSSxJQUFHLENBQUksSUFBSSxDQUFDLEtBQVo7UUFDRyxPQUFBLENBQUMsR0FBRCxDQUFLLE9BQUEsR0FBVSxLQUFLLENBQUMsSUFBTixDQUFXLElBQUksQ0FBQyxPQUFMLElBQWlCLFNBQWpCLElBQThCLEtBQXpDLENBQWYsRUFESDs7SUFHQSxJQUFBLENBQUssR0FBTCxFQUFVLEdBQVYsRUFBZSxTQUFDLFVBQUQsRUFBYSxVQUFiO0FBQ1gsWUFBQTtRQUFBLElBQUcsVUFBSDtZQUNJLE9BQUEsR0FBVSxLQUFBLENBQU0sVUFBTixFQUFrQixVQUFsQjtZQUNWLElBQUcsSUFBSSxDQUFDLE9BQUwsSUFBZ0IsT0FBbkI7Z0JBQ0ksR0FBQSxHQUFNLE1BQU0sQ0FBQyxRQUFQLENBQWdCLENBQUMsQ0FBQyxNQUFGLENBQVMsS0FBSyxDQUFDLFFBQU4sQ0FBZSxVQUFmLEVBQTJCLE1BQUEsQ0FBQSxDQUEzQixDQUFULEVBQStDLEVBQS9DLENBQWhCLEVBQW9FLE9BQUEsSUFBWSxLQUFLLENBQUMsR0FBbEIsSUFBeUIsS0FBSyxDQUFDLE1BQW5HO2dCQUNOLEdBQUEsR0FBTSxNQUFNLENBQUMsUUFBUCxDQUFnQixLQUFLLENBQUMsUUFBTixDQUFlLFVBQWYsRUFBMkIsTUFBQSxDQUFBLENBQTNCLENBQWhCLEVBQXNELEtBQUssQ0FBQyxLQUE1RDtnQkFDTixJQUFHLENBQUksSUFBSSxDQUFDLEtBQVo7b0JBQ0csT0FBQSxDQUFDLEdBQUQsQ0FBSyxHQUFMLEVBQVUsTUFBVixFQUFrQixHQUFsQixFQURIOzt1QkFFQSxLQUFBLENBQU0sVUFBTixFQUFrQixHQUFsQixFQUF1QixTQUFDLFVBQUQsRUFBYSxVQUFiO0FBQ25CLHdCQUFBO29CQUFBLElBQUcsQ0FBSSxVQUFQO3dCQUNJLE9BQU8sQ0FBQyxJQUFSLENBQWEsQ0FBYixFQURKOztvQkFFQSxDQUFBLEdBQUksTUFBTSxDQUFDLEdBQVAsQ0FBVyxVQUFYLEVBQXVCLEdBQXZCO29CQUNKLElBQUcsTUFBQSxDQUFPLFlBQVAsRUFBcUIsQ0FBckIsRUFBd0IsVUFBeEIsQ0FBSDt3QkFDSSxPQUFPLENBQUMsR0FBUixDQUFZLE1BQU0sQ0FBQyxRQUFQLENBQWdCLENBQUMsQ0FBQyxNQUFGLENBQVMsS0FBSyxDQUFDLFFBQU4sQ0FBZSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQTVCLEVBQWtDLE1BQUEsQ0FBQSxDQUFsQyxDQUFULEVBQXNELEVBQXRELENBQWhCLEVBQTJFLEtBQUssQ0FBQyxNQUFqRixDQUFaLEVBQXNHLE1BQXRHLEVBQThHLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEtBQUssQ0FBQyxRQUFOLENBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUE1QixFQUFpQyxNQUFBLENBQUEsQ0FBakMsQ0FBaEIsRUFBNEQsS0FBSyxDQUFDLElBQWxFLENBQTlHOytCQUNBLE1BQUEsQ0FBTyxZQUFQLEVBQXVCLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBZCxHQUFtQixHQUFuQixHQUFzQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQXpELEVBQStELE1BQU0sQ0FBQyxJQUFQLENBQVksWUFBWixFQUEwQixLQUFLLENBQUMsT0FBTixDQUFjLFVBQWQsQ0FBMUIsRUFBcUQsR0FBckQsQ0FBL0QsRUFGSjs7Z0JBSm1CLENBQXZCLEVBTEo7YUFGSjs7SUFEVyxDQUFmLEVBTEo7OztBQXFCQTtBQUFBLEtBQUEsc0NBQUE7O0lBRUksSUFBRyxJQUFLLENBQUEsR0FBQSxDQUFSO1FBRUksSUFBRyxDQUFJLE1BQUEsQ0FBTyxHQUFQLEVBQVksSUFBSSxFQUFDLFNBQUQsRUFBVSxDQUFDLElBQWYsQ0FBb0IsR0FBcEIsQ0FBWixFQUFzQyxPQUFPLENBQUMsR0FBUixDQUFBLENBQXRDLENBQVA7WUFDSSxPQUFPLENBQUMsSUFBUixDQUFhLENBQWI7QUFDQSxrQkFGSjs7UUFJQSxJQUE2QixJQUFJLENBQUMsT0FBbEM7WUFBQSxPQUFBLENBQUEsR0FBQSxDQUFJLEtBQUssQ0FBQyxJQUFOLENBQVcsVUFBWCxDQUFKLEVBQUE7O1FBRUEsSUFBRyxJQUFJLEVBQUMsU0FBRCxFQUFKLElBQW1CLENBQUEsR0FBQSxLQUFRLFFBQVIsSUFBQSxHQUFBLEtBQWlCLE1BQWpCLElBQUEsR0FBQSxLQUF3QixPQUF4QixDQUF0QjtBQUNJLGtCQURKO1NBUko7O0FBRko7O0FBYUEsSUFBRyxJQUFJLENBQUMsS0FBUjtJQUNJLEtBQUEsQ0FBTSxHQUFOLEVBQVcsR0FBWCxFQURKO0NBQUEsTUFFSyxJQUFHLEdBQUEsS0FBUSxPQUFYO0lBQ0QsT0FBTyxDQUFDLElBQVIsQ0FBYSxDQUFiLEVBREMiLCJzb3VyY2VzQ29udGVudCI6WyIjIyNcbjAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwXG4wMDAgIDAwMCAgIDAwMCAgIDAwMCAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4wMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwIDAgMDAwICAwMDAwMDAwICAgIDAwMDAwMDAwMCAgMDAwICAgMDAwXG4wMDAgIDAwMCAgIDAwMCAgIDAwMCAgMDAwICAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4wMDAgICAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMFxuIyMjXG5cbnsgXywgYXJncywgZnMsIGtsb2csIGtvbG9yLCBub29uLCBzbGFzaCwgd2F0Y2ggfSA9IHJlcXVpcmUgJ2t4aydcblxuYXJnRGlyID0gcmVxdWlyZSAnLi9hcmdkaXInXG5idWlsZCAgPSByZXF1aXJlICcuL2J1aWxkJ1xuY29uZmlnID0gcmVxdWlyZSAnLi9jb25maWcnXG5wcmV0dHkgPSByZXF1aXJlICcuL3ByZXR0eSdcbnJ1bmNtZCA9IHJlcXVpcmUgJy4vcnVuY21kJyBcbnNob3VsZCA9IHJlcXVpcmUgJy4vc2hvdWxkJ1xuc3RhdHVzID0gcmVxdWlyZSAnLi9zdGF0dXMnXG53YXRjaCAgPSByZXF1aXJlICcuL3dhdGNoJ1xud2FsayAgID0gcmVxdWlyZSAnLi93YWxrJ1xucGtnICAgID0gcmVxdWlyZSBcIiN7X19kaXJuYW1lfS8uLi9wYWNrYWdlXCJcblxuYXJncyA9IGFyZ3MuaW5pdCBcIlwiXCJcbiAgICBhcmd1bWVudHMgIGRlcGVuZCBvbiBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqXG4gICAgcnVuICAgICAgICBidWlsZCBkaXJ0eSBvciBtaXNzaW5nIHRhcmdldHMgaW4gZGlyICAgICAgICBmYWxzZVxuICAgIHJlYnVpbGQgICAgcmVidWlsZCBhbGwgdGFyZ2V0cyBpbiBkaXIgICAgICAgICAgICAgICAgICAgZmFsc2UgIC1SXG4gICAgd2F0Y2ggICAgICB3YXRjaCBkaXJlY3RvcnkgZm9yIGNoYW5nZXMgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIGluZm8gICAgICAgc2hvdyBidWlsZCBzdGF0dXMgb2YgZGlyICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICBidW1wICAgICAgIGJ1bXAgcGFja2FnZS4qIHZlcnNpb24gW21ham9yfG1pbm9yfHBhdGNoXSAgIGZhbHNlXG4gICAgYnVpbGQgICAgICBtYWtlIHBhY2thZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAgLW1cbiAgICBkaWZmICAgICAgIHNob3cgZ2l0IGRpZmYgb2YgZmlsZS9kaXIgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgc3RhdHVzICAgICBzaG93IGdpdCBzdGF0dXMgb2YgZmlsZS9kaXIgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIGZldGNoICAgICAgZmV0Y2ggYW5kIHNob3cgZ2l0IHN0YXR1cyBvZiBmaWxlL2RpciAgICAgICAgZmFsc2VcbiAgICBjb21taXQgICAgIGFkZCwgY29tbWl0IGFuZCBwdXNoIFttc2ddICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgdXBkYXRlICAgICB1cGRhdGUgbnBtIHBhY2thZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIHB1Ymxpc2ggICAgYnVtcCwgY29tbWl0ICYgcHVibGlzaCB0byBucG0gW21zZ10gICAgICAgICAgZmFsc2VcbiAgICB0ZXN0ICAgICAgIHJ1biB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgdmVyYm9zZSAgICBsb2cgbW9yZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgIHF1aWV0ICAgICAgbG9nIG5vdGhpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICBkZWJ1ZyAgICAgIGxvZyBkZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICAtRFxuICAgIGxvZ3RpbWUgICAgbG9nIHdpdGggdGltZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgIFwiXCJcIiwgcGtnOnBrZ1xuXG5hY3Rpb25zID0gWydidW1wJyAnYnVpbGQnICdjb21taXQnICdwdWJsaXNoJyAndXBkYXRlJyAndGVzdCcgJ3dhdGNoJyAncnVuJyAncmVidWlsZCcgJ2luZm8nICdzdGF0dXMnICdmZXRjaCcgJ2RpZmYnXVxuXG5pZiBub3QgYWN0aW9ucy5tYXAoKGEpIC0+IGFyZ3NbYV0pLnJlZHVjZSgoYWNjLHZhbCkgLT4gYWNjIG9yIHZhbClcbiAgICBhcmdzLnJ1biA9IHRydWUgIyBtYWtlcyBydW4gdGhlIGRlZmF1bHQgYWN0aW9uIGlmIG5vIG90aGVyIGFjdGlvbiBpcyBzZXRcbiAgICBcbiMgMDAwMDAwMCAgICAwMDAwMDAwMCAgMDAwMDAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAgICAgICAwMDAwMDAwMDAgICAwMDAwMDAwXG4jIDAwMCAgIDAwMCAgMDAwICAgICAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAgMDAwICAgICAwMDBcbiMgMDAwICAgMDAwICAwMDAwMDAwICAgMDAwMDAwICAgIDAwMDAwMDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAwMDAgICAgIDAwMDAwMDBcbiMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAwMDAgICAgICAgICAgMDAwXG4jIDAwMDAwMDAgICAgMDAwMDAwMDAgIDAwMCAgICAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwMDAwMCAgICAgMDAwICAgICAwMDAwMDAwXG5cbm9wdCA9IG5vb24ucGFyc2UgXCJcIlwiXG5jb2ZmZWUgIC4gZXh0IGpzICAgLiBtYXAgdHJ1ZSAuIHJlcGxhY2UgLi4gL2NvZmZlZS8gL2pzLyAuLiBeY29mZmVlLyBqcy8gXG5rb2ZmZWUgIC4gZXh0IGpzICAgLiBtYXAgdHJ1ZSAuIHJlcGxhY2UgLi4gL2NvZmZlZS8gL2pzLyAuLiBeY29mZmVlLyBqcy8gXG5ub29uICAgIC4gZXh0IGpzb25cbmpzb24gICAgLiBleHQgbm9vbiAuIGZpbHRlciAgLi4gcGFja2FnZS5qc29uJFxuc3R5bCAgICAuIGV4dCBjc3MgIC4gcmVwbGFjZSAuLiAvc3R5bGUvIC9jc3MvIC4uIC9zdHlsLyAvanMvY3NzL1xucHVnICAgICAuIGV4dCBodG1sIC4gcmVwbGFjZSAuLiAvcHVnLyAvanMvXG5cIlwiXCJcblxuIyAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAwICAgMDAwMDAwMDBcbiMgMDAwICAwMDAgICAgICAgIDAwMDAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMFxuIyAwMDAgIDAwMCAgMDAwMCAgMDAwIDAgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAgICAgMDAwMDAwMFxuIyAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwXG4jIDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAwMDAwMFxuXG5vcHQuaWdub3JlID0gW1xuICAgIC8uKlxcLmtvbnJhZFxcLm5vb24kL1xuICAgIC8uKm1lbnVcXC5ub29uJC9cbl1cblxud2xrID1cbiAgICBpZ25vcmU6IFtcbiAgICAgICAgL25vZGVfbW9kdWxlcyQvXG4gICAgICAgIC9ib3dlcl9jb21wb25lbnRzJC9cbiAgICAgICAgL1xcL2ltZyQvXG4gICAgICAgIC9cXC9cXC4uKyQvXG4gICAgICAgIC9cXC5naXQkL1xuICAgICAgICAvXFwuYXBwJC9cbiAgICAgICAgLy4qLXg2NCQvXG4gICAgICAgIC8uKi1pYTMyJC9cbiAgICAgICAgL1xcLz9pbm5vJC9cbiAgICAgICAgL1xcLz9qcyQvXG4gICAgXVxuXG4jIDAwMDAwMDAgICAgMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAwMCAgMDAwICAgMDAwXG4jIDAwMCAgIDAwMCAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgIDAwMCAwMDBcbiMgMDAwICAgMDAwICAwMDAgIDAwMDAwMDAgICAgICAgMDAwICAgICAgIDAwMDAwXG4jIDAwMCAgIDAwMCAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgICAgMDAwXG4jIDAwMDAwMDAgICAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgICAgMDAwXG5cbmRpcnR5ID0gKHNvdXJjZUZpbGUsIHRhcmdldEZpbGUpIC0+XG4gICAgXG4gICAgaWYgbm90IGZzLmV4aXN0c1N5bmMgdGFyZ2V0RmlsZSB0aGVuIHJldHVybiB0cnVlXG4gICAgc3MgPSBmcy5zdGF0U3luYyBzb3VyY2VGaWxlXG4gICAgdHMgPSBmcy5zdGF0U3luYyB0YXJnZXRGaWxlXG4gICAgc3MubXRpbWUuZ2V0VGltZSgpID4gdHMubXRpbWUuZ2V0VGltZSgpXG5cbiMgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAwICAgMDAwMDAwMFxuIyAwMDAgIDAwMDAgIDAwMCAgMDAwICAgICAgIDAwMCAgIDAwMFxuIyAwMDAgIDAwMCAwIDAwMCAgMDAwMDAwICAgIDAwMCAgIDAwMFxuIyAwMDAgIDAwMCAgMDAwMCAgMDAwICAgICAgIDAwMCAgIDAwMFxuIyAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDAwMDAwXG5cbmlmIGFyZ3MuaW5mb1xuXG4gICAgbG9nIGtvbG9yLmdyYXkgJ+KXi+KXjyBpbmZvJ1xuXG4gICAgd2FsayB3bGssIG9wdCwgKHNvdXJjZUZpbGUsIHRhcmdldEZpbGUpIC0+XG5cbiAgICAgICAgbG9nIFwic291cmNlOiAje3NvdXJjZUZpbGV9IHRhcmdldDogI3t0YXJnZXRGaWxlfVwiIGlmIGFyZ3MudmVyYm9zZVxuICAgICAgICBpZiBkaXJ0eSBzb3VyY2VGaWxlLCB0YXJnZXRGaWxlXG4gICAgICAgICAgICBsb2cgcHJldHR5LmZpbGVQYXRoKF8ucGFkRW5kKHNsYXNoLnJlbGF0aXZlKHNvdXJjZUZpbGUsIGFyZ0RpcigpKSwgNDApLCBrb2xvci55ZWxsb3cpLCBrb2xvci5yZWQuZGltKFwiIOKWuiBcIiksIHByZXR0eS5maWxlUGF0aChzbGFzaC5yZWxhdGl2ZSh0YXJnZXRGaWxlLCBhcmdEaXIoKSksIGtvbG9yLnJlZClcbiAgICAgICAgZWxzZSBpZiBhcmdzLnZlcmJvc2VcbiAgICAgICAgICAgIGxvZyBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUoc291cmNlRmlsZSwgYXJnRGlyKCkpLCA0MCksIGtvbG9yLm1hZ2VudGEpLCBrb2xvci5ncmVlbi5kaW0oXCIg4pa6IFwiKSwgcHJldHR5LmZpbGVQYXRoKHNsYXNoLnJlbGF0aXZlKHRhcmdldEZpbGUsIGFyZ0RpcigpKSwga29sb3IuZ3JlZW4pXG5cbmlmIGFyZ3MuZGlmZlxuICAgIFxuICAgIGFyZ3Muc3RhdHVzID0gdHJ1ZVxuXG4jIGtsb2cgYXJnc1xuICAgIFxuaWYgYXJncy5zdGF0dXMgb3IgYXJncy5mZXRjaFxuICAgIFxuICAgIG9wdGFsbCA9IF8uZGVmYXVsdHMgb3B0LCBhbGw6IHRydWVcbiAgICBnaXRjb3VudCA9IDBcblxuICAgIHdhbGsgd2xrLCBvcHRhbGwsIChzb3VyY2VGaWxlLCB0YXJnZXRGaWxlKSAtPlxuXG4gICAgICAgIGlmIG5vdCB0YXJnZXRGaWxlXG5cbiAgICAgICAgICAgIGlmIHNsYXNoLmJhc2VuYW1lKHNvdXJjZUZpbGUpID09ICcuZ2l0J1xuICAgICAgICAgICAgICAgIGlmIGFyZ3MuZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmdpdEZldGNoIHNvdXJjZUZpbGVcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5naXRTdGF0dXMgc291cmNlRmlsZVxuICAgICAgICAgICAgICAgIGdpdGNvdW50ICs9IDFcblxuICAgICAgICAgICAgaWYgc2xhc2guZGlyRXhpc3RzIHNvdXJjZUZpbGVcbiAgICAgICAgICAgICAgICBmb3IgaSBpbiBvcHQuaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGlmIGk/LnRlc3Q/XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiBpLnRlc3Qgc291cmNlRmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBrbG9nICdpZ25vcmU/JyBpXG4gICAgICAgIHRydWVcblxuICAgIGlmIG5vdCBnaXRjb3VudFxuICAgICAgICBnaXR1cCA9IHNsYXNoLnBhcnNlIGFyZ0RpcigpXG4gICAgICAgIHdoaWxlIGdpdHVwLmJhc2VcbiAgICAgICAgICAgIGRvdEdpdCA9IHNsYXNoLmpvaW4gZ2l0dXAuZGlyLCAnLmdpdCdcbiAgICAgICAgICAgIGlmIGZzLmV4aXN0c1N5bmMgZG90R2l0XG4gICAgICAgICAgICAgICAgaWYgYXJncy5mZXRjaFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZ2l0RmV0Y2ggZG90R2l0XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZ2l0U3RhdHVzIGRvdEdpdFxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBnaXR1cCA9IHNsYXNoLnBhcnNlIGdpdHVwLmRpclxuICAgICAgICAgICAgXG4jIDAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAgICAwMDBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMDAgIDAwMFxuIyAwMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwIDAgMDAwXG4jIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMDBcbiMgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMFxuXG5pZiBhcmdzLnJ1biBvciBhcmdzLnJlYnVpbGRcblxuICAgIGlmIG5vdCBhcmdzLnF1aWV0XG4gICAgICAgIGxvZyAn8J+Up/CflKcgJyArIGtvbG9yLmdyYXkoYXJncy5yZWJ1aWxkIGFuZCAncmVidWlsZCcgb3IgJ3J1bicpXG4gICAgXG4gICAgd2FsayB3bGssIG9wdCwgKHNvdXJjZUZpbGUsIHRhcmdldEZpbGUpIC0+XG4gICAgICAgIGlmIHRhcmdldEZpbGVcbiAgICAgICAgICAgIGlzRGlydHkgPSBkaXJ0eSBzb3VyY2VGaWxlLCB0YXJnZXRGaWxlXG4gICAgICAgICAgICBpZiBhcmdzLnJlYnVpbGQgb3IgaXNEaXJ0eVxuICAgICAgICAgICAgICAgIHNyYyA9IHByZXR0eS5maWxlUGF0aChfLnBhZEVuZChzbGFzaC5yZWxhdGl2ZShzb3VyY2VGaWxlLCBhcmdEaXIoKSksIDQwKSwgaXNEaXJ0eSBhbmQga29sb3IucmVkIG9yIGtvbG9yLnllbGxvdylcbiAgICAgICAgICAgICAgICB0Z3QgPSBwcmV0dHkuZmlsZVBhdGgoc2xhc2gucmVsYXRpdmUodGFyZ2V0RmlsZSwgYXJnRGlyKCkpLCBrb2xvci5ncmVlbilcbiAgICAgICAgICAgICAgICBpZiBub3QgYXJncy5xdWlldFxuICAgICAgICAgICAgICAgICAgICBsb2cgc3JjLCBcIvCflKcgIFwiLCB0Z3RcbiAgICAgICAgICAgICAgICBidWlsZCBzb3VyY2VGaWxlLCBvcHQsIChzb3VyY2VGaWxlLCB0YXJnZXRGaWxlKSAtPlxuICAgICAgICAgICAgICAgICAgICBpZiBub3QgdGFyZ2V0RmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0IDFcbiAgICAgICAgICAgICAgICAgICAgbyA9IGNvbmZpZy5vYmogdGFyZ2V0RmlsZSwgb3B0XG4gICAgICAgICAgICAgICAgICAgIGlmIHNob3VsZCAnYnJvd3NlcmlmeScsIG8sIHRhcmdldEZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIHByZXR0eS5maWxlUGF0aChfLnBhZEVuZChzbGFzaC5yZWxhdGl2ZShvLmJyb3dzZXJpZnkubWFpbiwgYXJnRGlyKCkpLCA0MCksIGtvbG9yLnllbGxvdyksIFwi8J+UpyAgXCIsIHByZXR0eS5maWxlUGF0aChzbGFzaC5yZWxhdGl2ZShvLmJyb3dzZXJpZnkub3V0LCBhcmdEaXIoKSksIGtvbG9yLmJsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICBydW5jbWQgJ2Jyb3dzZXJpZnknIFwiI3tvLmJyb3dzZXJpZnkubWFpbn0gI3tvLmJyb3dzZXJpZnkub3V0fVwiIGNvbmZpZy5wYXRoICdicm93c2VyaWZ5Jywgc2xhc2gucmVzb2x2ZSh0YXJnZXRGaWxlKSwgb3B0XG5cbmZvciBjbWQgaW4gWyd1cGRhdGUnICdidW1wJyAnYnVpbGQnICdjb21taXQnICdwdWJsaXNoJyAndGVzdCddXG5cbiAgICBpZiBhcmdzW2NtZF1cblxuICAgICAgICBpZiBub3QgcnVuY21kIGNtZCwgYXJncy5hcmd1bWVudHMuam9pbignICcpLCBwcm9jZXNzLmN3ZCgpXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQgMVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICBsb2cga29sb3IuZ3JheSAn8J+UpyAgZG9uZScgaWYgYXJncy52ZXJib3NlXG5cbiAgICAgICAgaWYgYXJncy5hcmd1bWVudHMgYW5kIGNtZCBpbiBbJ2NvbW1pdCcgJ2J1bXAnICdidWlsZCddXG4gICAgICAgICAgICBicmVha1xuXG5pZiBhcmdzLndhdGNoXG4gICAgd2F0Y2ggd2xrLCBvcHRcbmVsc2UgaWYgY21kIGluIFsnYnVpbGQnXVxuICAgIHByb2Nlc3MuZXhpdCAwXG4gICAgIl19
187//# sourceURL=../coffee/konrad.coffee
\No newline at end of file