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(kolor.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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QUFQLEdBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiIyMjXG4wMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAwMDAgICAgICAwMDAwMDAwICBcbjAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMFxuMDAwMDAwMCAgICAwMDAgICAwMDAgIDAwMCAgMDAwICAgICAgMDAwICAgMDAwXG4wMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAgICAgICAwMDAgICAwMDBcbjAwMDAwMDAgICAgIDAwMDAwMDAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAgIFxuIyMjXG5cbnsgXywgYXJncywgZW1wdHksIGZzLCBrZXJyb3IsIGtsb2csIGtvbG9yLCBzbGFzaCB9ID0gcmVxdWlyZSAna3hrJ1xuXG5wcmV0dHkgID0gcmVxdWlyZSAnLi9wcmV0dHknXG5jb25maWcgID0gcmVxdWlyZSAnLi9jb25maWcnXG5hcmdEaXIgID0gcmVxdWlyZSAnLi9hcmdkaXInXG5zaG91bGQgID0gcmVxdWlyZSAnLi9zaG91bGQnXG50YXJnZXQgID0gcmVxdWlyZSAnLi90YXJnZXQnXG5jb21waWxlID0gcmVxdWlyZSAnLi9jb21waWxlJ1xucnVuY21kICA9IHJlcXVpcmUgJy4vcnVuY21kJ1xuXG5idWlsZCA9IChzb3VyY2VGaWxlLCBvcHQsIGNiKSAtPlxuXG4gICAga2xvZyBcInNvdXJjZSBmaWxlXCIuZ3JheSwgc291cmNlRmlsZSBpZiBhcmdzLmRlYnVnXG5cbiAgICBleHQgPSBzbGFzaC5leHRuYW1lKHNvdXJjZUZpbGUpLnN1YnN0cigxKVxuXG4gICAgY2ZnID0gY29uZmlnLm9iaiBzb3VyY2VGaWxlLCBvcHRcblxuICAgIGlmIGV4dCA9PSAnanMnIGFuZCBzaG91bGQgJ2Jyb3dzZXJpZnknLCBjZmcsIHNvdXJjZUZpbGVcbiAgICAgICAgbWFpbiA9IGNmZy5icm93c2VyaWZ5Lm1haW5cbiAgICAgICAgb3V0ICA9IGNmZy5icm93c2VyaWZ5Lm91dFxuICAgICAgICBwd2QgID0gY29uZmlnLnBhdGggJ2Jyb3dzZXJpZnknLCBzbGFzaC5yZXNvbHZlKHNvdXJjZUZpbGUpLCBvcHRcbiAgICAgICAgaWYgb3V0ICE9IHNsYXNoLnJlbGF0aXZlIHNvdXJjZUZpbGUsIHB3ZFxuICAgICAgICAgICAga2xvZyBwcmV0dHkuZmlsZVBhdGgoXy5wYWRFbmQoc2xhc2gucmVsYXRpdmUobWFpbiwgYXJnRGlyKCkpLCA0MCksIGtvbG9yLnllbGxvdyksIFwi8J+UpyAgXCIsIHByZXR0eS5maWxlUGF0aChzbGFzaC5yZWxhdGl2ZShvdXQsIGFyZ0RpcigpKSwga29sb3IuYmx1ZSlcbiAgICAgICAgICAgIHJ1bmNtZCAnYnJvd3NlcmlmeScsIFwiI3ttYWlufSAje291dH1cIiwgcHdkXG4gICAgICAgIHJldHVyblxuXG4gICAgdGFyZ2V0RmlsZSA9IHRhcmdldCBzb3VyY2VGaWxlLCBvcHRcbiAgICBpZiBub3QgdGFyZ2V0RmlsZT9cbiAgICAgICAgd2FybiBcIm5vIHRhcmdldEZpbGUgZm9yIHNvdXJjZTogI3tzb3VyY2VGaWxlfVwiLCBvcHRcbiAgICAgICAgcmV0dXJuXG5cbiAgICBrbG9nIFwidGFyZ2V0IGZpbGVcIi5ncmF5LCB0YXJnZXRGaWxlIGlmIGFyZ3MuZGVidWdcblxuICAgICMgMDAwMDAwMDAgICAwMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwXG4gICAgIyAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMFxuICAgICMgMDAwMDAwMCAgICAwMDAwMDAwICAgMDAwMDAwMDAwICAwMDAgICAwMDBcbiAgICAjIDAwMCAgIDAwMCAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4gICAgIyAwMDAgICAwMDAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMDAwMDBcblxuICAgIGZzLnJlYWRGaWxlIHNvdXJjZUZpbGUsICd1dGY4JyAoZXJyLCBzb3VyY2VUZXh0KSAtPlxuXG4gICAgICAgIGlmIGVyciBcbiAgICAgICAgICAgIGtlcnJvciBcImNhbid0IHJlYWQgI3tzb3VyY2VGaWxlfVwiXG4gICAgICAgICAgICBjYigpXG4gICAgICAgICAgICByZXR1cm4gXG4gICAgICAgIFxuICAgICAgICAjICAwMDAwMDAwICAgMDAwMDAwMCAgIDAwICAgICAwMCAgMDAwMDAwMDAgICAwMDAgIDAwMCAgICAgIDAwMDAwMDAwICBcbiAgICAgICAgIyAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAgICAgICAwMDAgICAgICAgXG4gICAgICAgICMgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMCAgMDAwICAgICAgMDAwMDAwMCAgIFxuICAgICAgICAjIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAwIDAwMCAgMDAwICAgICAgICAwMDAgIDAwMCAgICAgIDAwMCAgICAgICBcbiAgICAgICAgIyAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMCAgICAgICAgMDAwICAwMDAwMDAwICAwMDAwMDAwMCAgXG4gICAgICAgIFxuICAgICAgICBjb21waWxlZCA9IGNvbXBpbGUgc291cmNlVGV4dCwgZXh0LCBzb3VyY2VGaWxlLCB0YXJnZXRGaWxlLCBjZmdcbiAgICAgICAgXG4gICAgICAgIGlmIGVtcHR5IGNvbXBpbGVkXG4gICAgICAgICAgICBjYigpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgXG4gICAgICAgIHNsYXNoLmxvZ0Vycm9ycyA9IHRydWVcbiAgICAgICAgXG4gICAgICAgIGlmIG5vdCBzbGFzaC5maWxlRXhpc3RzKHRhcmdldEZpbGUpIG9yIHNsYXNoLnJlYWRUZXh0KHRhcmdldEZpbGUpICE9IGNvbXBpbGVkXG4gICAgICAgICAgICB3cml0ZUNvbXBpbGVkIHNvdXJjZUZpbGUsIHRhcmdldEZpbGUsIGNvbXBpbGVkLCBjYlxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBrbG9nIGtvbG9yLmdyZWVuKGtvbG9yLmRpbSgndW5jaGFuZ2VkJykpLCBwcmV0dHkuZmlsZVBhdGgoc2xhc2gucmVsYXRpdmUodGFyZ2V0RmlsZSwgYXJnRGlyKCkpLCBrb2xvci5ncmF5KSBpZiBhcmdzLmRlYnVnXG4gICAgICAgICAgICBpZiBhcmdzLnZlcmJvc2VcbiAgICAgICAgICAgICAgICBsb2cgcHJldHR5LnRpbWUoKSwgXCLwn5GNICAje3ByZXR0eS5maWxlUGF0aCBzb3VyY2VGaWxlfSAje2tvbG9yLmJvbGQoa29sb3IueWVsbG93KCfilronKSl9ICN7cHJldHR5LmZpbGVQYXRoIHRhcmdldEZpbGV9XCJcbiAgICAgICAgICAgIHN0YXQgPSBmcy5zdGF0U3luYyBzb3VyY2VGaWxlXG4gICAgICAgICAgICB0dGF0ID0gZnMuc3RhdFN5bmMgdGFyZ2V0RmlsZVxuICAgICAgICAgICAgaWYgc3RhdC5tdGltZS5nZXRUaW1lKCkgIT0gdHRhdC5tdGltZS5nZXRUaW1lKClcbiAgICAgICAgICAgICAgICBmcy51dGltZXNTeW5jIHNsYXNoLnJlc29sdmUodGFyZ2V0RmlsZSksIHN0YXQuYXRpbWUsIHN0YXQubXRpbWVcblxuIyAwMDAgICAwMDAgIDAwMDAwMDAwICAgMDAwICAwMDAwMDAwMDAgIDAwMDAwMDAwXG4jIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAgICAgIDAwMCAgICAgMDAwXG4jIDAwMDAwMDAwMCAgMDAwMDAwMCAgICAwMDAgICAgIDAwMCAgICAgMDAwMDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAwMDAgICAgIDAwMFxuIyAwMCAgICAgMDAgIDAwMCAgIDAwMCAgMDAwICAgICAwMDAgICAgIDAwMDAwMDAwXG5cbndyaXRlQ29tcGlsZWQgPSAoc291cmNlRmlsZSwgdGFyZ2V0RmlsZSwgY29tcGlsZWQsIGNiKSAtPlxuICAgIFxuICAgIGZzLm1rZGlyU3luYyBzbGFzaC5kaXIodGFyZ2V0RmlsZSksIHJlY3Vyc2l2ZTp0cnVlXG5cbiAgICBzbGFzaC53cml0ZVRleHQgdGFyZ2V0RmlsZSwgY29tcGlsZWRcblxuICAgIGlmIG5vdCBhcmdzLnF1aWV0XG4gICAgICAgIGlmIGFyZ3MudmVyYm9zZVxuICAgICAgICAgICAgbG9nIHByZXR0eS50aW1lKCksIFwi8J+RjSAgICN7cHJldHR5LmZpbGVQYXRoIHNsYXNoLnRpbGRlIHNvdXJjZUZpbGV9ICN7a29sb3IuYm9sZChrb2xvci55ZWxsb3coJ+KWuicpKX0gI3twcmV0dHkuZmlsZVBhdGggc2xhc2gudGlsZGUgdGFyZ2V0RmlsZX1cIlxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBsb2cgcHJldHR5LnRpbWUoKSwgXCLwn5GNICAgI3twcmV0dHkuZmlsZVBhdGggc2xhc2gudGlsZGUgdGFyZ2V0RmlsZX1cIlxuXG4gICAgY2I/IHNvdXJjZUZpbGUsIHRhcmdldEZpbGVcblxubW9kdWxlLmV4cG9ydHMgPSBidWlsZFxuIl19
102//# sourceURL=../coffee/build.coffee
\No newline at end of file