const remoteExec = require('../remoteExec.js'); // links lubiland and module.exports const lubiland = module.exports = {}; lubiland['infrastructure'] = {}; lubiland['infrastructure']['rebuild'] = {}; lubiland['infrastructure']['rebuild'].regex = /^([a-zA-Z0-9\-\_]*)$/; lubiland['infrastructure']['rebuild'].usage = ''; lubiland['infrastructure']['rebuild'].exec = (args, room, event) => { return new Promise((resolve, reject) => { const container = args[1]; matrixClient.sendNotice(room.roomId, 'rebuilding container ' + container); remoteExec('./rebuild.sh ' + container) .then(function(success) { matrixClient.sendNotice(room.roomId, event.sender.userId + '\nrebuilt container ' + container); }, function(process) { matrixClient.sendNotice(room.roomId, event.sender.userId + '\nrebuild of container ' + container + ' failed.\ncode: ' + process.code + '\nstdout: \n```\n' + process.stdout + '```\nstderr: \n```\n' + process.stderr + '\n```'); }); }); }; lubiland['heimdall'] = {}; lubiland['heimdall']['join'] = {}; lubiland['heimdall']['join'].regex = /^(.*)$/; lubiland['heimdall']['join'].usage = ''; lubiland['heimdall']['join'].exec = (args, room, event) => { return new Promise((resolve, reject) => { const roomId = args[1]; matrixClient.joinRoom(roomId) .then((success) => { matrixClient.sendNotice(room.roomId, ' joined ' + success.name); }, (fail) => { matrixClient.sendNotice(room.roomId, 'error while trying to join the other room: ' + fail.message); }) }); };