UNPKG

pooliot-client

Version:
89 lines (63 loc) 3.54 kB
'use strict'; 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