1 | // koffee 1.14.0
|
2 |
|
3 | /*
|
4 | 000 000 0000000 000000000 0000000 000 000
|
5 | 000 0 000 000 000 000 000 000 000
|
6 | 000000000 000000000 000 000 000000000
|
7 | 000 000 000 000 000 000 000 000
|
8 | 00 00 000 000 000 0000000 000 000
|
9 | */
|
10 | var Watch, _, args, build, config, klog, kolor, pkg, pretty, ref, runcmd, should, slash, watcher,
|
11 | indexOf = [].indexOf;
|
12 |
|
13 | ref = require('kxk'), _ = ref._, args = ref.args, klog = ref.klog, kolor = ref.kolor, slash = ref.slash;
|
14 |
|
15 | pretty = require('./pretty');
|
16 |
|
17 | should = require('./should');
|
18 |
|
19 | runcmd = require('./runcmd');
|
20 |
|
21 | config = require('./config');
|
22 |
|
23 | build = require('./build');
|
24 |
|
25 | pkg = require('../package.json');
|
26 |
|
27 | watcher = null;
|
28 |
|
29 | Watch = function(wlk, opt) {
|
30 | var start;
|
31 | start = function(cb) {
|
32 | var d, pass, ref1, v;
|
33 | pass = function(p) {
|
34 | var ref1;
|
35 | return ref1 = slash.ext(p), indexOf.call(_.keys(opt), ref1) >= 0;
|
36 | };
|
37 | d = (ref1 = args["arguments"][0]) != null ? ref1 : '.';
|
38 | v = kolor.dim(kolor.gray(pkg.version + " ●"));
|
39 | klog(pretty.time(), kolor.gray("👁 " + v + " " + (pretty.filePath(slash.resolve(d), kolor.white))));
|
40 | watcher = require('kxk').watch.watch(d, {
|
41 | recursive: true,
|
42 | ignore: wlk.ignore
|
43 | });
|
44 | return watcher.on('change', function(info) {
|
45 | if (pass(info.path)) {
|
46 | return cb(slash.path(info.path));
|
47 | }
|
48 | });
|
49 | };
|
50 | return start(function(sourceFile) {
|
51 | var o, test;
|
52 | sourceFile = slash.resolve(sourceFile);
|
53 | o = config.obj(sourceFile, opt);
|
54 | test = function(source) {
|
55 | if (should('test', o, source)) {
|
56 | return runcmd('test', source, config.path('test', slash.resolve(source), opt));
|
57 | }
|
58 | };
|
59 | if (!should('ignore', o, sourceFile)) {
|
60 | return build(sourceFile, opt, test);
|
61 | } else {
|
62 | return test(sourceFile);
|
63 | }
|
64 | });
|
65 | };
|
66 |
|
67 | module.exports = Watch;
|
68 |
|
69 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiLi4vY29mZmVlIiwic291cmNlcyI6WyJ3YXRjaC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7OztBQUFBLElBQUEsNEZBQUE7SUFBQTs7QUFRQSxNQUFrQyxPQUFBLENBQVEsS0FBUixDQUFsQyxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsZUFBWCxFQUFpQixpQkFBakIsRUFBd0I7O0FBRXhCLE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxLQUFBLEdBQVMsT0FBQSxDQUFRLFNBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBUSxpQkFBUjs7QUFFVCxPQUFBLEdBQVU7O0FBRVYsS0FBQSxHQUFRLFNBQUMsR0FBRCxFQUFNLEdBQU47QUFJSixRQUFBO0lBQUEsS0FBQSxHQUFRLFNBQUMsRUFBRDtBQUVKLFlBQUE7UUFBQSxJQUFBLEdBQU8sU0FBQyxDQUFEO0FBQU8sZ0JBQUE7MEJBQUEsS0FBSyxDQUFDLEdBQU4sQ0FBVSxDQUFWLENBQUEsRUFBQSxhQUFnQixDQUFDLENBQUMsSUFBRixDQUFPLEdBQVAsQ0FBaEIsRUFBQSxJQUFBO1FBQVA7UUFFUCxDQUFBLGtEQUF3QjtRQUN4QixDQUFBLEdBQUksS0FBSyxDQUFDLEdBQU4sQ0FBVSxLQUFLLENBQUMsSUFBTixDQUFjLEdBQUcsQ0FBQyxPQUFMLEdBQWEsSUFBMUIsQ0FBVjtRQUNKLElBQUEsQ0FBSyxNQUFNLENBQUMsSUFBUCxDQUFBLENBQUwsRUFBb0IsS0FBSyxDQUFDLElBQU4sQ0FBVyxPQUFBLEdBQVEsQ0FBUixHQUFVLEdBQVYsR0FBWSxDQUFDLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEtBQUssQ0FBQyxPQUFOLENBQWMsQ0FBZCxDQUFoQixFQUFrQyxLQUFLLENBQUMsS0FBeEMsQ0FBRCxDQUF2QixDQUFwQjtRQUNBLE9BQUEsR0FBVSxPQUFBLENBQVEsS0FBUixDQUFjLENBQUMsS0FBSyxDQUFDLEtBQXJCLENBQTJCLENBQTNCLEVBQThCO1lBQUEsU0FBQSxFQUFVLElBQVY7WUFBZ0IsTUFBQSxFQUFPLEdBQUcsQ0FBQyxNQUEzQjtTQUE5QjtlQUNWLE9BQU8sQ0FBQyxFQUFSLENBQVcsUUFBWCxFQUFvQixTQUFDLElBQUQ7WUFDaEIsSUFBRyxJQUFBLENBQUssSUFBSSxDQUFDLElBQVYsQ0FBSDt1QkFBdUIsRUFBQSxDQUFHLEtBQUssQ0FBQyxJQUFOLENBQVcsSUFBSSxDQUFDLElBQWhCLENBQUgsRUFBdkI7O1FBRGdCLENBQXBCO0lBUkk7V0FXUixLQUFBLENBQU0sU0FBQyxVQUFEO0FBRUYsWUFBQTtRQUFBLFVBQUEsR0FBYSxLQUFLLENBQUMsT0FBTixDQUFjLFVBQWQ7UUFDYixDQUFBLEdBQUksTUFBTSxDQUFDLEdBQVAsQ0FBVyxVQUFYLEVBQXVCLEdBQXZCO1FBRUosSUFBQSxHQUFPLFNBQUMsTUFBRDtZQUNILElBQUcsTUFBQSxDQUFPLE1BQVAsRUFBYyxDQUFkLEVBQWlCLE1BQWpCLENBQUg7dUJBQ0ksTUFBQSxDQUFPLE1BQVAsRUFBYyxNQUFkLEVBQXNCLE1BQU0sQ0FBQyxJQUFQLENBQVksTUFBWixFQUFtQixLQUFLLENBQUMsT0FBTixDQUFjLE1BQWQsQ0FBbkIsRUFBMEMsR0FBMUMsQ0FBdEIsRUFESjs7UUFERztRQUlQLElBQUcsQ0FBSSxNQUFBLENBQU8sUUFBUCxFQUFnQixDQUFoQixFQUFtQixVQUFuQixDQUFQO21CQUNJLEtBQUEsQ0FBTSxVQUFOLEVBQWtCLEdBQWxCLEVBQXVCLElBQXZCLEVBREo7U0FBQSxNQUFBO21CQUdJLElBQUEsQ0FBSyxVQUFMLEVBSEo7O0lBVEUsQ0FBTjtBQWZJOztBQTZCUixNQUFNLENBQUMsT0FBUCxHQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIiMjI1xuMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAwMCAgIDAwMDAwMDAgIDAwMCAgIDAwMFxuMDAwIDAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMCAgIDAwMFxuMDAwMDAwMDAwICAwMDAwMDAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMDAwMDAwMFxuMDAwICAgMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgMDAwICAgICAgIDAwMCAgIDAwMFxuMDAgICAgIDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgIDAwMDAwMDAgIDAwMCAgIDAwMFxuIyMjXG5cbnsgXywgYXJncywga2xvZywga29sb3IsIHNsYXNoIH0gPSByZXF1aXJlICdreGsnXG5cbnByZXR0eSA9IHJlcXVpcmUgJy4vcHJldHR5J1xuc2hvdWxkID0gcmVxdWlyZSAnLi9zaG91bGQnXG5ydW5jbWQgPSByZXF1aXJlICcuL3J1bmNtZCdcbmNvbmZpZyA9IHJlcXVpcmUgJy4vY29uZmlnJ1xuYnVpbGQgID0gcmVxdWlyZSAnLi9idWlsZCdcbnBrZyAgICA9IHJlcXVpcmUgJy4uL3BhY2thZ2UuanNvbidcblxud2F0Y2hlciA9IG51bGxcblxuV2F0Y2ggPSAod2xrLCBvcHQpIC0+XG4gICAgXG4gICAgIyBrbG9nICd3YXRjaCcgd2xrLCBvcHRcbiAgICBcbiAgICBzdGFydCA9IChjYikgLT5cblxuICAgICAgICBwYXNzID0gKHApIC0+IHNsYXNoLmV4dChwKSBpbiBfLmtleXMob3B0KVxuXG4gICAgICAgIGQgPSBhcmdzLmFyZ3VtZW50c1swXSA/ICcuJ1xuICAgICAgICB2ID0ga29sb3IuZGltIGtvbG9yLmdyYXkgXCIje3BrZy52ZXJzaW9ufSDil49cIlxuICAgICAgICBrbG9nIHByZXR0eS50aW1lKCksIGtvbG9yLmdyYXkgXCLwn5GBICAgI3t2fSAje3ByZXR0eS5maWxlUGF0aCBzbGFzaC5yZXNvbHZlKGQpLCBrb2xvci53aGl0ZX1cIlxuICAgICAgICB3YXRjaGVyID0gcmVxdWlyZSgna3hrJykud2F0Y2gud2F0Y2ggZCwgcmVjdXJzaXZlOnRydWUsIGlnbm9yZTp3bGsuaWdub3JlXG4gICAgICAgIHdhdGNoZXIub24gJ2NoYW5nZScgKGluZm8pIC0+IFxuICAgICAgICAgICAgaWYgcGFzcyBpbmZvLnBhdGggdGhlbiBjYiBzbGFzaC5wYXRoIGluZm8ucGF0aFxuXG4gICAgc3RhcnQgKHNvdXJjZUZpbGUpIC0+XG5cbiAgICAgICAgc291cmNlRmlsZSA9IHNsYXNoLnJlc29sdmUgc291cmNlRmlsZVxuICAgICAgICBvID0gY29uZmlnLm9iaiBzb3VyY2VGaWxlLCBvcHRcblxuICAgICAgICB0ZXN0ID0gKHNvdXJjZSkgLT5cbiAgICAgICAgICAgIGlmIHNob3VsZCAndGVzdCcgbywgc291cmNlXG4gICAgICAgICAgICAgICAgcnVuY21kICd0ZXN0JyBzb3VyY2UsIGNvbmZpZy5wYXRoICd0ZXN0JyBzbGFzaC5yZXNvbHZlKHNvdXJjZSksIG9wdFxuXG4gICAgICAgIGlmIG5vdCBzaG91bGQgJ2lnbm9yZScgbywgc291cmNlRmlsZVxuICAgICAgICAgICAgYnVpbGQgc291cmNlRmlsZSwgb3B0LCB0ZXN0XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRlc3Qgc291cmNlRmlsZVxuXG5tb2R1bGUuZXhwb3J0cyA9IFdhdGNoXG4iXX0=
|
70 | //# sourceURL=../coffee/watch.coffee |
\ | No newline at end of file |