27 lines
846 B
JavaScript
27 lines
846 B
JavaScript
|
import utils from '../utils';
|
||
|
|
||
|
export default {
|
||
|
async Listener(command) {
|
||
|
const [commands, hosts, actions, scripts] = await Promise.all([utils.methods.getCommands(), utils.methods.getHosts(), utils.methods.getActions(), utils.methods.getScripts()]);
|
||
|
|
||
|
if (command in commands) {
|
||
|
const actionName = commands[command];
|
||
|
if (actionName in actions) {
|
||
|
const action = actions[actionName];
|
||
|
const host = hosts[Object.values(action.hosts)[0]];
|
||
|
return await utils.methods.run(action, host);
|
||
|
}
|
||
|
|
||
|
if (actionName in scripts) {
|
||
|
const script = scripts[actionName];
|
||
|
const host = hosts[Object.values(script.hosts)[0]];
|
||
|
return await utils.methods.runScript(script.script, host);
|
||
|
}
|
||
|
|
||
|
console.warn('No such action nor script', actionName);
|
||
|
}
|
||
|
},
|
||
|
};
|
||
|
|
||
|
// vim:sw=2:ts=2:et:
|