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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiLi4vY29mZmVlIiwic291cmNlcyI6WyJ3YXRjaC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7OztBQUFBLElBQUEsNEZBQUE7SUFBQTs7QUFRQSxNQUFrQyxPQUFBLENBQVEsS0FBUixDQUFsQyxFQUFFLFNBQUYsRUFBSyxlQUFMLEVBQVcsZUFBWCxFQUFpQixpQkFBakIsRUFBd0I7O0FBRXhCLE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxNQUFBLEdBQVMsT0FBQSxDQUFRLFVBQVI7O0FBQ1QsTUFBQSxHQUFTLE9BQUEsQ0FBUSxVQUFSOztBQUNULE1BQUEsR0FBUyxPQUFBLENBQVEsVUFBUjs7QUFDVCxLQUFBLEdBQVMsT0FBQSxDQUFRLFNBQVI7O0FBQ1QsR0FBQSxHQUFTLE9BQUEsQ0FBUSxpQkFBUjs7QUFFVCxPQUFBLEdBQVU7O0FBRVYsS0FBQSxHQUFRLFNBQUMsR0FBRCxFQUFNLEdBQU47QUFJSixRQUFBO0lBQUEsS0FBQSxHQUFRLFNBQUMsRUFBRDtBQUVKLFlBQUE7UUFBQSxJQUFBLEdBQU8sU0FBQyxDQUFEO0FBQU8sZ0JBQUE7MEJBQUEsS0FBSyxDQUFDLEdBQU4sQ0FBVSxDQUFWLENBQUEsRUFBQSxhQUFnQixDQUFDLENBQUMsSUFBRixDQUFPLEdBQVAsQ0FBaEIsRUFBQSxJQUFBO1FBQVA7UUFFUCxDQUFBLGtEQUF3QjtRQUN4QixDQUFBLEdBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFWLENBQWtCLEdBQUcsQ0FBQyxPQUFMLEdBQWEsSUFBOUI7UUFDSixJQUFBLENBQUssTUFBTSxDQUFDLElBQVAsQ0FBQSxDQUFMLEVBQW9CLEtBQUssQ0FBQyxJQUFOLENBQVcsT0FBQSxHQUFRLENBQVIsR0FBVSxHQUFWLEdBQVksQ0FBQyxNQUFNLENBQUMsUUFBUCxDQUFnQixLQUFLLENBQUMsT0FBTixDQUFjLENBQWQsQ0FBaEIsRUFBa0MsS0FBSyxDQUFDLEtBQXhDLENBQUQsQ0FBdkIsQ0FBcEI7UUFDQSxPQUFBLEdBQVUsT0FBQSxDQUFRLEtBQVIsQ0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFyQixDQUEyQixDQUEzQixFQUE4QjtZQUFBLFNBQUEsRUFBVSxJQUFWO1lBQWdCLE1BQUEsRUFBTyxHQUFHLENBQUMsTUFBM0I7U0FBOUI7ZUFDVixPQUFPLENBQUMsRUFBUixDQUFXLFFBQVgsRUFBb0IsU0FBQyxJQUFEO1lBQ2hCLElBQUcsSUFBQSxDQUFLLElBQUksQ0FBQyxJQUFWLENBQUg7dUJBQXVCLEVBQUEsQ0FBRyxLQUFLLENBQUMsSUFBTixDQUFXLElBQUksQ0FBQyxJQUFoQixDQUFILEVBQXZCOztRQURnQixDQUFwQjtJQVJJO1dBV1IsS0FBQSxDQUFNLFNBQUMsVUFBRDtBQUVGLFlBQUE7UUFBQSxVQUFBLEdBQWEsS0FBSyxDQUFDLE9BQU4sQ0FBYyxVQUFkO1FBQ2IsQ0FBQSxHQUFJLE1BQU0sQ0FBQyxHQUFQLENBQVcsVUFBWCxFQUF1QixHQUF2QjtRQUVKLElBQUEsR0FBTyxTQUFDLE1BQUQ7WUFDSCxJQUFHLE1BQUEsQ0FBTyxNQUFQLEVBQWMsQ0FBZCxFQUFpQixNQUFqQixDQUFIO3VCQUNJLE1BQUEsQ0FBTyxNQUFQLEVBQWMsTUFBZCxFQUFzQixNQUFNLENBQUMsSUFBUCxDQUFZLE1BQVosRUFBbUIsS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLENBQW5CLEVBQTBDLEdBQTFDLENBQXRCLEVBREo7O1FBREc7UUFJUCxJQUFHLENBQUksTUFBQSxDQUFPLFFBQVAsRUFBZ0IsQ0FBaEIsRUFBbUIsVUFBbkIsQ0FBUDttQkFDSSxLQUFBLENBQU0sVUFBTixFQUFrQixHQUFsQixFQUF1QixJQUF2QixFQURKO1NBQUEsTUFBQTttQkFHSSxJQUFBLENBQUssVUFBTCxFQUhKOztJQVRFLENBQU47QUFmSTs7QUE2QlIsTUFBTSxDQUFDLE9BQVAsR0FBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIjIyNcbjAwMCAgIDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwMDAgICAwMDAwMDAwICAwMDAgICAwMDBcbjAwMCAwIDAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDBcbjAwMDAwMDAwMCAgMDAwMDAwMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAwMDAwMDBcbjAwMCAgIDAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDBcbjAwICAgICAwMCAgMDAwICAgMDAwICAgICAwMDAgICAgICAwMDAwMDAwICAwMDAgICAwMDBcbiMjI1xuXG57IF8sIGFyZ3MsIGtsb2csIGtvbG9yLCBzbGFzaCB9ID0gcmVxdWlyZSAna3hrJ1xuXG5wcmV0dHkgPSByZXF1aXJlICcuL3ByZXR0eSdcbnNob3VsZCA9IHJlcXVpcmUgJy4vc2hvdWxkJ1xucnVuY21kID0gcmVxdWlyZSAnLi9ydW5jbWQnXG5jb25maWcgPSByZXF1aXJlICcuL2NvbmZpZydcbmJ1aWxkICA9IHJlcXVpcmUgJy4vYnVpbGQnXG5wa2cgICAgPSByZXF1aXJlICcuLi9wYWNrYWdlLmpzb24nXG5cbndhdGNoZXIgPSBudWxsXG5cbldhdGNoID0gKHdsaywgb3B0KSAtPlxuICAgIFxuICAgICMga2xvZyAnd2F0Y2gnIHdsaywgb3B0XG4gICAgXG4gICAgc3RhcnQgPSAoY2IpIC0+XG5cbiAgICAgICAgcGFzcyA9IChwKSAtPiBzbGFzaC5leHQocCkgaW4gXy5rZXlzKG9wdClcblxuICAgICAgICBkID0gYXJncy5hcmd1bWVudHNbMF0gPyAnLidcbiAgICAgICAgdiA9IGtvbG9yLmRpbS5ncmF5IFwiI3twa2cudmVyc2lvbn0g4pePXCJcbiAgICAgICAga2xvZyBwcmV0dHkudGltZSgpLCBrb2xvci5ncmF5IFwi8J+RgSAgICN7dn0gI3twcmV0dHkuZmlsZVBhdGggc2xhc2gucmVzb2x2ZShkKSwga29sb3Iud2hpdGV9XCJcbiAgICAgICAgd2F0Y2hlciA9IHJlcXVpcmUoJ2t4aycpLndhdGNoLndhdGNoIGQsIHJlY3Vyc2l2ZTp0cnVlLCBpZ25vcmU6d2xrLmlnbm9yZVxuICAgICAgICB3YXRjaGVyLm9uICdjaGFuZ2UnIChpbmZvKSAtPiBcbiAgICAgICAgICAgIGlmIHBhc3MgaW5mby5wYXRoIHRoZW4gY2Igc2xhc2gucGF0aCBpbmZvLnBhdGhcblxuICAgIHN0YXJ0IChzb3VyY2VGaWxlKSAtPlxuXG4gICAgICAgIHNvdXJjZUZpbGUgPSBzbGFzaC5yZXNvbHZlIHNvdXJjZUZpbGVcbiAgICAgICAgbyA9IGNvbmZpZy5vYmogc291cmNlRmlsZSwgb3B0XG5cbiAgICAgICAgdGVzdCA9IChzb3VyY2UpIC0+XG4gICAgICAgICAgICBpZiBzaG91bGQgJ3Rlc3QnIG8sIHNvdXJjZVxuICAgICAgICAgICAgICAgIHJ1bmNtZCAndGVzdCcgc291cmNlLCBjb25maWcucGF0aCAndGVzdCcgc2xhc2gucmVzb2x2ZShzb3VyY2UpLCBvcHRcblxuICAgICAgICBpZiBub3Qgc2hvdWxkICdpZ25vcmUnIG8sIHNvdXJjZUZpbGVcbiAgICAgICAgICAgIGJ1aWxkIHNvdXJjZUZpbGUsIG9wdCwgdGVzdFxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0ZXN0IHNvdXJjZUZpbGVcblxubW9kdWxlLmV4cG9ydHMgPSBXYXRjaFxuIl19
|
70 | //# sourceURL=../coffee/watch.coffee |
\ | No newline at end of file |