pooliot-client
Version:
89 lines (63 loc) • 3.54 kB
JavaScript
require('alp-node/fetch');
var _nightingale = require('nightingale');
var _nightingale2 = _interopRequireDefault(_nightingale);
var _updateNotifier = require('update-notifier');
var _updateNotifier2 = _interopRequireDefault(_updateNotifier);
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _minimistArgv = require('minimist-argv');
var _minimistArgv2 = _interopRequireDefault(_minimistArgv);
var _package = require('../../package.json');
var _package2 = _interopRequireDefault(_package);
var _run = require('./install/run');
var _run2 = _interopRequireDefault(_run);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _updateNotifier2.default)({ pkg: _package2.default }).notify(); /* eslint-disable no-console */
/* global fetch */
const logger = new _nightingale2.default('cli');
(0, _nightingale.listenUnhandledErrors)(logger);
_commander2.default.option('-p, --webPort <port>', 'pooliot web port').version(_package2.default.version);
_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 => {
if (!options.address && options.host) {
options.address = `${options.host}:${options.port}`;
}
(0, _run2.default)(options, _package2.default).catch(err => {
console.error(err);
process.exit(1);
});
});
const call = (requestUri, options, retry) => fetch(`http://localhost:${_minimistArgv2.default.webPort || '80'}/api/${requestUri}`, options).then(res => res.text()).then(res => console.log(res)).catch(err => {
console.log(err.message || err);
if (!retry) setTimeout(() => call(requestUri, options, true), 3000);
});
_commander2.default.command('self-update').alias('selfupdate').alias('selfUpdate').action(() => call('self-update', { method: 'POST' }));
_commander2.default.command('screen [state]').description(`get or set the state of the screen:
on: turn the screen on
off: turn the screen off`).action(state => {
if (state === 'on' || state === 'off') {
return call('screen', { method: 'POST', body: JSON.stringify({ state }) });
}
return call('screen');
});
_commander2.default.command('display [action]').description(`action on the current display program (chromium / livestreamer / ...):
status: display status
restart: restart the current display
refresh: refresh the page (only works for browsers)
openbox-started: notify that openbox is started (internal)`).action((action = 'status') => {
switch (action) {
case 'status':
return call('display');
case 'start':
return call('display/start', { method: 'POST' });
case 'openbox-started':
return call('display/openbox-started', { method: 'POST' });
case 'restart':
return call('display/restart', { method: 'POST' });
case 'refresh':
return call('display/refresh', { method: 'POST' });
}
throw new Error(`Unsupported display instruction: ${_minimistArgv2.default._[1]}`);
});
_commander2.default.parse(process.argv);
//# sourceMappingURL=index.js.map
;