UNPKG

glass-build

Version:

Contains scripts for building glass based projects.

186 lines (168 loc) 5.04 kB
// Generated by CoffeeScript 1.6.3 (function() { var ae, browserBuild, build, buildCommon, check, cp, exports, fs, getPackageJson, np, runTest, utility, watchCoffee, watchTest, watcher, _ref; require('sugar'); if (global.window != null) { return; } fs = require('fs'); np = require('path'); cp = require('./coffeepages'); ae = require('./appengine'); _ref = browserBuild = require('browser-build'), watcher = _ref.watcher, utility = _ref.utility; check = function(config) { var _base, _base1, _base2, _ref1; if (config.node == null) { throw new Error("config.node is required"); } if (config.source == null) { throw new Error("config.source is required"); } if (Object.isString(config.node)) { config.node = { directory: config.node }; } if (Object.isString(config.source)) { config.source = { directory: config.source }; } if (config.browser != null) { if ((_base = config.browser.output).directory == null) { _base.directory = "www/js"; } if ((_base1 = config.browser.output).webroot == null) { _base1.webroot = "www"; } if ((_base2 = config.browser.output).test == null) { _base2.test = "glass-test"; } } if ((_ref1 = config.appengine) != null ? _ref1.pages : void 0) { config.pages = { input: { directory: 'war' }, output: { directory: 'war/WEB-INF/pages' } }; } }; build = function(config, callback) { return utility.buildCoffee(config.source.directory, config.node.directory, callback); }; watchCoffee = function(config) { utility.watchCoffee(config.source.directory, config.node.directory); if (config.browser != null) { return browserBuild.watch(config.browser); } }; runTest = function(config, callback) { var list, testModule; list = utility.list(config.node.directory, { include: ".js" }); if (config.browser.output.test == null) { return; } testModule = np.join(config.browser.output.directory, 'test/test.js'); return utility.spawn("node.cmd " + testModule + " " + (list.join(' ')), callback); }; watchTest = function(config) { var debouncedRunTest, options; debouncedRunTest = (function() { return runTest(config); }).debounce(500); options = { filter: ".js", initial: false }; return watcher.watchDirectory(config.node.directory, options, debouncedRunTest); }; getPackageJson = function(config) { var path; path = 'package.json'; return JSON.parse(fs.readFileSync(path, 'utf8')); }; buildCommon = function(config) { var file, _i, _len, _ref1, _results; check(config); _ref1 = ["README.md", "package.json"]; _results = []; for (_i = 0, _len = _ref1.length; _i < _len; _i++) { file = _ref1[_i]; if (fs.existsSync(file)) { _results.push(utility.copy(file, "" + config.node.directory + "/" + file)); } else { _results.push(void 0); } } return _results; }; module.exports = exports = { utility: utility, watcher: watcher, build: function(config, callback) { buildCommon(config); return build(config, function() { if (config.browser != null) { browserBuild.build(config.browser); } cp.buildCoffeePages(config.pages); if (config.appengine != null) { ae.build(); } return runTest(config, callback); }); }, watch: function(config) { var _ref1; buildCommon(config); watchCoffee(config); watchTest(config); cp.watchCoffeePages(config.pages); if (config.appengine != null) { ae.run(); if (config.appengine.java != null) { return watcher.watchDirectory(config.appengine.java, { initial: false }, function(file) { return ae.restart(); }); } } else if (((_ref1 = config.browser) != null ? _ref1.port : void 0) != null) { return utility.startWebServer({ root: config.browser.output.webroot, port: config.browser.port }); } }, kill: function(config, callback) { if (config.appengine != null) { return ae.kill(); } }, test: function(config, callback) { check(config); return runTest(config, callback); }, publish: function(config, callback) { return exports.build(config, function() { return utility.spawn("npm.cmd publish " + config.node.directory, callback); }); }, bump: function(config, callback) { var pj, version; pj = getPackageJson(config); version = pj.version.split('.'); version[2] = parseInt(version[2]) + 1; version = version.join('.'); return utility.spawn("npm.cmd version " + version, callback); } }; }).call(this); /* //@ sourceMappingURL=index.map */