UNPKG

3.41 kBJavaScriptView Raw
1#!/usr/bin/env node
2'use strict';
3
4var _liftoff = require('liftoff');
5
6var _liftoff2 = _interopRequireDefault(_liftoff);
7
8var _commander = require('commander');
9
10var _commander2 = _interopRequireDefault(_commander);
11
12var _debug = require('debug');
13
14var _debug2 = _interopRequireDefault(_debug);
15
16var _interpret = require('interpret');
17
18var _package = require('../package.json');
19
20var _package2 = _interopRequireDefault(_package);
21
22var _compiler = require('./compiler');
23
24var _server = require('./cli/server');
25
26var _server2 = _interopRequireDefault(_server);
27
28var _builder = require('./cli/builder');
29
30var _builder2 = _interopRequireDefault(_builder);
31
32function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
34/* eslint no-console: 0 */
35var version = _package2.default.version;
36
37var debug = (0, _debug2.default)('cyboard.cli');
38
39if (!process.env.NODE_ENV) {
40 process.env.NODE_ENV = 'production';
41}
42
43var cli = new _liftoff2.default({
44 name: 'Cyboard',
45 extensions: Object.assign({}, _interpret.jsVariants, {
46 '.jsx': 'babel-register'
47 })
48});
49
50function validateConfigPath(env) {
51 if (!env.configPath) {
52 console.log('No ' + cli.configName + ' found.');
53 return false;
54 }
55 debug('Using Cyboardfile from ' + env.configPath);
56 return true;
57}
58
59cli.on('require', function (name) {
60 return debug('Requiring external module %s', name);
61});
62cli.on('requireFail', function (name) {
63 return debug('Loading module %s failed', name);
64});
65cli.on('respawn', function (flags, child) {
66 console.log('Detected node flags:', flags);
67 console.log('Respawned to PID:', child.pid);
68});
69
70_commander2.default.version(version).option('--cwd [path]', 'Sets the current working directory').option('--cache [path]', 'Set the directory for caching', './.cyboard').option('--require [path]', 'Require additional modules to run the server');
71
72_commander2.default.command('start [cyboardfile]').description('Starts a cyboard server').option('-p, --port [number]', 'Sets the used port number for catalog server', '3000').option('-c, --credentials [path]', 'Sets the path to the credentials file', './credentials.json').option('-d, --dev', 'Start the server in devmode, which runs an internal webpack devserver').action(function (configPath, _ref) {
73 var port = _ref.port,
74 credentials = _ref.credentials,
75 dev = _ref.dev,
76 _ref$parent = _ref.parent,
77 cache = _ref$parent.cache,
78 cwd = _ref$parent.cwd,
79 require = _ref$parent.require;
80
81 cli.launch({ cwd: cwd, configPath: configPath, require: require }, function (env) {
82 return validateConfigPath(env) && (0, _server2.default)(Object.assign({}, env, { cache: cache, credentials: credentials, port: port, isDev: !!dev }));
83 });
84});
85
86_commander2.default.command('warmup [cyboardfile]').description('Warm up cache with static frontend build').action(function (configPath, _ref2) {
87 var _ref2$parent = _ref2.parent,
88 cache = _ref2$parent.cache,
89 cwd = _ref2$parent.cwd,
90 require = _ref2$parent.require;
91
92 cli.launch({ cwd: cwd, configPath: configPath, require: require }, function (env) {
93 return validateConfigPath(env) && (0, _builder2.default)(Object.assign({}, env, { cache: cache }));
94 });
95});
96
97_commander2.default.parse(process.argv);
98
99if (!_commander2.default.args.length) _commander2.default.help();
\No newline at end of file