UNPKG

13.8 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 _, argDir, args, build, compile, config, empty, fs, kerror, klog, kolor, pretty, ref, runcmd, should, slash, target, writeCompiled;
11
12ref = require('kxk'), _ = ref._, args = ref.args, empty = ref.empty, fs = ref.fs, kerror = ref.kerror, klog = ref.klog, kolor = ref.kolor, slash = ref.slash;
13
14pretty = require('./pretty');
15
16config = require('./config');
17
18argDir = require('./argdir');
19
20should = require('./should');
21
22target = require('./target');
23
24compile = require('./compile');
25
26runcmd = require('./runcmd');
27
28build = function(sourceFile, opt, cb) {
29 var cfg, ext, main, out, pwd, targetFile;
30 if (args.debug) {
31 klog("source file".gray, sourceFile);
32 }
33 ext = slash.extname(sourceFile).substr(1);
34 cfg = config.obj(sourceFile, opt);
35 if (ext === 'js' && should('browserify', cfg, sourceFile)) {
36 main = cfg.browserify.main;
37 out = cfg.browserify.out;
38 pwd = config.path('browserify', slash.resolve(sourceFile), opt);
39 if (out !== slash.relative(sourceFile, pwd)) {
40 klog(pretty.filePath(_.padEnd(slash.relative(main, argDir()), 40), kolor.yellow), "🔧 ", pretty.filePath(slash.relative(out, argDir()), kolor.blue));
41 runcmd('browserify', main + " " + out, pwd);
42 }
43 return;
44 }
45 targetFile = target(sourceFile, opt);
46 if (targetFile == null) {
47 console.warn("no targetFile for source: " + sourceFile, opt);
48 return;
49 }
50 if (args.debug) {
51 klog("target file".gray, targetFile);
52 }
53 return fs.readFile(sourceFile, 'utf8', function(err, sourceText) {
54 var compiled, stat, ttat;
55 if (err) {
56 kerror("can't read " + sourceFile);
57 cb();
58 return;
59 }
60 compiled = compile(sourceText, ext, sourceFile, targetFile, cfg);
61 if (empty(compiled)) {
62 cb();
63 return;
64 }
65 slash.logErrors = true;
66 if (!slash.fileExists(targetFile) || slash.readText(targetFile) !== compiled) {
67 return writeCompiled(sourceFile, targetFile, compiled, cb);
68 } else {
69 if (args.debug) {
70 klog(kolor.green.dim('unchanged'), pretty.filePath(slash.relative(targetFile, argDir()), kolor.gray));
71 }
72 if (args.verbose) {
73 console.log(pretty.time(), "👍 " + (pretty.filePath(sourceFile)) + " " + (kolor.bold(kolor.yellow('►'))) + " " + (pretty.filePath(targetFile)));
74 }
75 stat = fs.statSync(sourceFile);
76 ttat = fs.statSync(targetFile);
77 if (stat.mtime.getTime() !== ttat.mtime.getTime()) {
78 return fs.utimesSync(slash.resolve(targetFile), stat.atime, stat.mtime);
79 }
80 }
81 });
82};
83
84writeCompiled = function(sourceFile, targetFile, compiled, cb) {
85 fs.mkdirSync(slash.dir(targetFile), {
86 recursive: true
87 });
88 slash.writeText(targetFile, compiled);
89 if (!args.quiet) {
90 if (args.verbose) {
91 console.log(pretty.time(), "👍 " + (pretty.filePath(slash.tilde(sourceFile))) + " " + (kolor.bold(kolor.yellow('►'))) + " " + (pretty.filePath(slash.tilde(targetFile))));
92 } else {
93 console.log(pretty.time(), "👍 " + (pretty.filePath(slash.tilde(targetFile))));
94 }
95 }
96 return typeof cb === "function" ? cb(sourceFile, targetFile) : void 0;
97};
98
99module.exports = build;
100
101//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiLi4vY29mZmVlIiwic291cmNlcyI6WyJidWlsZC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7OztBQUFBLElBQUE7O0FBUUEsTUFBcUQsT0FBQSxDQUFRLEtBQVIsQ0FBckQsRUFBRSxTQUFGLEVBQUssZUFBTCxFQUFXLGlCQUFYLEVBQWtCLFdBQWxCLEVBQXNCLG1CQUF0QixFQUE4QixlQUE5QixFQUFvQyxpQkFBcEMsRUFBMkM7O0FBRTNDLE1BQUEsR0FBVSxPQUFBLENBQVEsVUFBUjs7QUFDVixNQUFBLEdBQVUsT0FBQSxDQUFRLFVBQVI7O0FBQ1YsTUFBQSxHQUFVLE9BQUEsQ0FBUSxVQUFSOztBQUNWLE1BQUEsR0FBVSxPQUFBLENBQVEsVUFBUjs7QUFDVixNQUFBLEdBQVUsT0FBQSxDQUFRLFVBQVI7O0FBQ1YsT0FBQSxHQUFVLE9BQUEsQ0FBUSxXQUFSOztBQUNWLE1BQUEsR0FBVSxPQUFBLENBQVEsVUFBUjs7QUFFVixLQUFBLEdBQVEsU0FBQyxVQUFELEVBQWEsR0FBYixFQUFrQixFQUFsQjtBQUVKLFFBQUE7SUFBQSxJQUF1QyxJQUFJLENBQUMsS0FBNUM7UUFBQSxJQUFBLENBQUssYUFBYSxDQUFDLElBQW5CLEVBQXlCLFVBQXpCLEVBQUE7O0lBRUEsR0FBQSxHQUFNLEtBQUssQ0FBQyxPQUFOLENBQWMsVUFBZCxDQUF5QixDQUFDLE1BQTFCLENBQWlDLENBQWpDO0lBRU4sR0FBQSxHQUFNLE1BQU0sQ0FBQyxHQUFQLENBQVcsVUFBWCxFQUF1QixHQUF2QjtJQUVOLElBQUcsR0FBQSxLQUFPLElBQVAsSUFBZ0IsTUFBQSxDQUFPLFlBQVAsRUFBcUIsR0FBckIsRUFBMEIsVUFBMUIsQ0FBbkI7UUFDSSxJQUFBLEdBQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0QixHQUFBLEdBQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0QixHQUFBLEdBQU8sTUFBTSxDQUFDLElBQVAs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b3VyY2VzQ29udGVudCI6WyIjIyNcbjAwMDAwMDAgICAgMDAwICAgMDAwICAwMDAgIDAwMCAgICAgIDAwMDAwMDAgIFxuMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgMDAwICAgICAgMDAwICAgMDAwXG4wMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAwMDAgICAgICAwMDAgICAwMDBcbjAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMFxuMDAwMDAwMCAgICAgMDAwMDAwMCAgIDAwMCAgMDAwMDAwMCAgMDAwMDAwMCAgXG4jIyNcblxueyBfLCBhcmdzLCBlbXB0eSwgZnMsIGtlcnJvciwga2xvZywga29sb3IsIHNsYXNoIH0gPSByZXF1aXJlICdreGsnXG5cbnByZXR0eSAgPSByZXF1aXJlICcuL3ByZXR0eSdcbmNvbmZpZyAgPSByZXF1aXJlICcuL2NvbmZpZydcbmFyZ0RpciAgPSByZXF1aXJlICcuL2FyZ2RpcidcbnNob3VsZCAgPSByZXF1aXJlICcuL3Nob3VsZCdcbnRhcmdldCAgPSByZXF1aXJlICcuL3RhcmdldCdcbmNvbXBpbGUgPSByZXF1aXJlICcuL2NvbXBpbGUnXG5ydW5jbWQgID0gcmVxdWlyZSAnLi9ydW5jbWQnXG5cbmJ1aWxkID0gKHNvdXJjZUZpbGUsIG9wdCwgY2IpIC0+XG5cbiAgICBrbG9nIFwic291cmNlIGZpbGVcIi5ncmF5LCBzb3VyY2VGaWxlIGlmIGFyZ3MuZGVidWdcblxuICAgIGV4dCA9IHNsYXNoLmV4dG5hbWUoc291cmNlRmlsZSkuc3Vic3RyKDEpXG5cbiAgICBjZmcgPSBjb25maWcub2JqIHNvdXJjZUZpbGUsIG9wdFxuXG4gICAgaWYgZXh0ID09ICdqcycgYW5kIHNob3VsZCAnYnJvd3NlcmlmeScsIGNmZywgc291cmNlRmlsZVxuICAgICAgICBtYWluID0gY2ZnLmJyb3dzZXJpZnkubWFpblxuICAgICAgICBvdXQgID0gY2ZnLmJyb3dzZXJpZnkub3V0XG4gICAgICAgIHB3ZCAgPSBjb25maWcucGF0aCAnYnJvd3NlcmlmeScsIHNsYXNoLnJlc29sdmUoc291cmNlRmlsZSksIG9wdFxuICAgICAgICBpZiBvdXQgIT0gc2xhc2gucmVsYXRpdmUgc291cmNlRmlsZSwgcHdkXG4gICAgICAgICAgICBrbG9nIHByZXR0eS5maWxlUGF0aChfLnBhZEVuZChzbGFzaC5yZWxhdGl2ZShtYWluLCBhcmdEaXIoKSksIDQwKSwga29sb3IueWVsbG93KSwgXCLwn5SnICBcIiwgcHJldHR5LmZpbGVQYXRoKHNsYXNoLnJlbGF0aXZlKG91dCwgYXJnRGlyKCkpLCBrb2xvci5ibHVlKVxuICAgICAgICAgICAgcnVuY21kICdicm93c2VyaWZ5JywgXCIje21haW59ICN7b3V0fVwiLCBwd2RcbiAgICAgICAgcmV0dXJuXG5cbiAgICB0YXJnZXRGaWxlID0gdGFyZ2V0IHNvdXJjZUZpbGUsIG9wdFxuICAgIGlmIG5vdCB0YXJnZXRGaWxlP1xuICAgICAgICB3YXJuIFwibm8gdGFyZ2V0RmlsZSBmb3Igc291cmNlOiAje3NvdXJjZUZpbGV9XCIsIG9wdFxuICAgICAgICByZXR1cm5cblxuICAgIGtsb2cgXCJ0YXJnZXQgZmlsZVwiLmdyYXksIHRhcmdldEZpbGUgaWYgYXJncy5kZWJ1Z1xuXG4gICAgIyAwMDAwMDAwMCAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDBcbiAgICAjIDAwMCAgIDAwMCAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4gICAgIyAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMDAgIDAwMCAgIDAwMFxuICAgICMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDBcbiAgICAjIDAwMCAgIDAwMCAgMDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMFxuXG4gICAgZnMucmVhZEZpbGUgc291cmNlRmlsZSwgJ3V0ZjgnIChlcnIsIHNvdXJjZVRleHQpIC0+XG5cbiAgICAgICAgaWYgZXJyIFxuICAgICAgICAgICAga2Vycm9yIFwiY2FuJ3QgcmVhZCAje3NvdXJjZUZpbGV9XCJcbiAgICAgICAgICAgIGNiKClcbiAgICAgICAgICAgIHJldHVybiBcbiAgICAgICAgXG4gICAgICAgICMgIDAwMDAwMDAgICAwMDAwMDAwICAgMDAgICAgIDAwICAwMDAwMDAwMCAgIDAwMCAgMDAwICAgICAgMDAwMDAwMDAgIFxuICAgICAgICAjIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMCAgICAgIDAwMCAgICAgICBcbiAgICAgICAgIyAwMDAgICAgICAgMDAwICAgMDAwICAwMDAwMDAwMDAgIDAwMDAwMDAwICAgMDAwICAwMDAgICAgICAwMDAwMDAwICAgXG4gICAgICAgICMgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwIDAgMDAwICAwMDAgICAgICAgIDAwMCAgMDAwICAgICAgMDAwICAgICAgIFxuICAgICAgICAjICAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAwICBcbiAgICAgICAgXG4gICAgICAgIGNvbXBpbGVkID0gY29tcGlsZSBzb3VyY2VUZXh0LCBleHQsIHNvdXJjZUZpbGUsIHRhcmdldEZpbGUsIGNmZ1xuICAgICAgICBcbiAgICAgICAgaWYgZW1wdHkgY29tcGlsZWRcbiAgICAgICAgICAgIGNiKClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICBcbiAgICAgICAgc2xhc2gubG9nRXJyb3JzID0gdHJ1ZVxuICAgICAgICBcbiAgICAgICAgaWYgbm90IHNsYXNoLmZpbGVFeGlzdHModGFyZ2V0RmlsZSkgb3Igc2xhc2gucmVhZFRleHQodGFyZ2V0RmlsZSkgIT0gY29tcGlsZWRcbiAgICAgICAgICAgIHdyaXRlQ29tcGlsZWQgc291cmNlRmlsZSwgdGFyZ2V0RmlsZSwgY29tcGlsZWQsIGNiXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGtsb2cga29sb3IuZ3JlZW4uZGltKCd1bmNoYW5nZWQnKSwgcHJldHR5LmZpbGVQYXRoKHNsYXNoLnJlbGF0aXZlKHRhcmdldEZpbGUsIGFyZ0RpcigpKSwga29sb3IuZ3JheSkgaWYgYXJncy5kZWJ1Z1xuICAgICAgICAgICAgaWYgYXJncy52ZXJib3NlXG4gICAgICAgICAgICAgICAgbG9nIHByZXR0eS50aW1lKCksIFwi8J+RjSAgI3twcmV0dHkuZmlsZVBhdGggc291cmNlRmlsZX0gI3trb2xvci5ib2xkKGtvbG9yLnllbGxvdygn4pa6JykpfSAje3ByZXR0eS5maWxlUGF0aCB0YXJnZXRGaWxlfVwiXG4gICAgICAgICAgICBzdGF0ID0gZnMuc3RhdFN5bmMgc291cmNlRmlsZVxuICAgICAgICAgICAgdHRhdCA9IGZzLnN0YXRTeW5jIHRhcmdldEZpbGVcbiAgICAgICAgICAgIGlmIHN0YXQubXRpbWUuZ2V0VGltZSgpICE9IHR0YXQubXRpbWUuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgZnMudXRpbWVzU3luYyBzbGFzaC5yZXNvbHZlKHRhcmdldEZpbGUpLCBzdGF0LmF0aW1lLCBzdGF0Lm10aW1lXG5cbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgIDAwMCAgMDAwMDAwMDAwICAwMDAwMDAwMFxuIyAwMDAgMCAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAwMDAgICAgIDAwMFxuIyAwMDAwMDAwMDAgIDAwMDAwMDAgICAgMDAwICAgICAwMDAgICAgIDAwMDAwMDBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgMDAwICAgICAwMDBcbiMgMDAgICAgIDAwICAwMDAgICAwMDAgIDAwMCAgICAgMDAwICAgICAwMDAwMDAwMFxuXG53cml0ZUNvbXBpbGVkID0gKHNvdXJjZUZpbGUsIHRhcmdldEZpbGUsIGNvbXBpbGVkLCBjYikgLT5cbiAgICBcbiAgICBmcy5ta2RpclN5bmMgc2xhc2guZGlyKHRhcmdldEZpbGUpLCByZWN1cnNpdmU6dHJ1ZVxuXG4gICAgc2xhc2gud3JpdGVUZXh0IHRhcmdldEZpbGUsIGNvbXBpbGVkXG5cbiAgICBpZiBub3QgYXJncy5xdWlldFxuICAgICAgICBpZiBhcmdzLnZlcmJvc2VcbiAgICAgICAgICAgIGxvZyBwcmV0dHkudGltZSgpLCBcIvCfkY0gICAje3ByZXR0eS5maWxlUGF0aCBzbGFzaC50aWxkZSBzb3VyY2VGaWxlfSAje2tvbG9yLmJvbGQoa29sb3IueWVsbG93KCfilronKSl9ICN7cHJldHR5LmZpbGVQYXRoIHNsYXNoLnRpbGRlIHRhcmdldEZpbGV9XCJcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgbG9nIHByZXR0eS50aW1lKCksIFwi8J+RjSAgICN7cHJldHR5LmZpbGVQYXRoIHNsYXNoLnRpbGRlIHRhcmdldEZpbGV9XCJcblxuICAgIGNiPyBzb3VyY2VGaWxlLCB0YXJnZXRGaWxlXG5cbm1vZHVsZS5leHBvcnRzID0gYnVpbGRcbiJdfQ==
102//# sourceURL=../coffee/build.coffee
\No newline at end of file