1 | 'use strict';
|
2 |
|
3 | require('alp-node/fetch');
|
4 |
|
5 | var _nightingale = require('nightingale');
|
6 |
|
7 | var _nightingale2 = _interopRequireDefault(_nightingale);
|
8 |
|
9 | var _updateNotifier = require('update-notifier');
|
10 |
|
11 | var _updateNotifier2 = _interopRequireDefault(_updateNotifier);
|
12 |
|
13 | var _commander = require('commander');
|
14 |
|
15 | var _commander2 = _interopRequireDefault(_commander);
|
16 |
|
17 | var _minimistArgv = require('minimist-argv');
|
18 |
|
19 | var _minimistArgv2 = _interopRequireDefault(_minimistArgv);
|
20 |
|
21 | var _package = require('../../package.json');
|
22 |
|
23 | var _package2 = _interopRequireDefault(_package);
|
24 |
|
25 | var _run = require('./install/run');
|
26 |
|
27 | var _run2 = _interopRequireDefault(_run);
|
28 |
|
29 | var _config = require('../config');
|
30 |
|
31 | var _config2 = _interopRequireDefault(_config);
|
32 |
|
33 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
34 |
|
35 |
|
36 |
|
37 | (0, _updateNotifier2.default)({ pkg: _package2.default }).notify();
|
38 |
|
39 | const logger = new _nightingale2.default('cli');
|
40 | (0, _nightingale.listenUnhandledErrors)(logger);
|
41 |
|
42 | _commander2.default.option('-p, --webPort <port>', 'pooliot web port').version(_package2.default.version);
|
43 |
|
44 | _commander2.default.command('install').alias('i').option('-h, --host <host>', 'deprecated - replaced by address').option('--port <port>', 'deprecated - replaced by address').option('--userId <userId>', 'deprecated - replaced by token').option('--piUser <piUser>', 'deprecated - replaced by user').option('-i, --interactive', 'ask what you want to install').option('-a, --address <host>:<port>', 'remote pooliot server').option('-u, --user <user>', 'user used to run programs').option('-t, --token <token>', 'authentification token').action(options => {
|
45 | if (!options.address && options.host) {
|
46 | options.address = `${options.host}:${options.port}`;
|
47 | }
|
48 |
|
49 | (0, _run2.default)(options, _package2.default).catch(err => {
|
50 | console.error(err);
|
51 | process.exit(1);
|
52 | });
|
53 | });
|
54 |
|
55 | const call = (requestUri, options, retry) => fetch(`http://localhost:${_minimistArgv2.default.webPort || _config2.default.WEB_PORT || '80'}/api/${requestUri}`, options).then(res => res.text()).then(res => console.log(res)).catch(err => {
|
56 | console.log(err.message || err);
|
57 | if (!retry) setTimeout(() => call(requestUri, options, true), 3000);
|
58 | });
|
59 |
|
60 | _commander2.default.command('self-update').alias('selfupdate').alias('selfUpdate').action(() => call('self-update', { method: 'POST' }));
|
61 |
|
62 | _commander2.default.command('screen [state]').description(`get or set the state of the screen:
|
63 | on: turn the screen on
|
64 | off: turn the screen off`).action(state => {
|
65 | if (state === 'on' || state === 'off') {
|
66 | return call('screen', { method: 'POST', body: JSON.stringify({ state }) });
|
67 | }
|
68 |
|
69 | return call('screen');
|
70 | });
|
71 |
|
72 | _commander2.default.command('display [action]').description(`action on the current display program (chromium / livestreamer / ...):
|
73 | status: display status
|
74 | restart: restart the current display
|
75 | refresh: refresh the page (only works for browsers)
|
76 | openbox-started: notify that openbox is started (internal)`).action((action = 'status') => {
|
77 | switch (action) {
|
78 | case 'status':
|
79 | return call('display');
|
80 | case 'start':
|
81 | return call('display/start', { method: 'POST' });
|
82 | case 'openbox-started':
|
83 | return call('display/openbox-started', { method: 'POST' });
|
84 | case 'restart':
|
85 | return call('display/restart', { method: 'POST' });
|
86 | case 'refresh':
|
87 | return call('display/refresh', { method: 'POST' });
|
88 | }
|
89 | throw new Error(`Unsupported display instruction: ${_minimistArgv2.default._[1]}`);
|
90 | });
|
91 |
|
92 | _commander2.default.parse(process.argv);
|
93 |
|
\ | No newline at end of file |