From b9f25b79f49a310a8c9b9fa62fe29f72626f0c56 Mon Sep 17 00:00:00 2001 From: lub Date: Thu, 12 Oct 2017 23:28:44 +0200 Subject: [PATCH 1/2] lubs freitag gefummel --- index.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ rebuild.sh | 3 +++ 2 files changed, 73 insertions(+) create mode 100644 index.js create mode 100755 rebuild.sh diff --git a/index.js b/index.js new file mode 100644 index 0000000..213e06e --- /dev/null +++ b/index.js @@ -0,0 +1,70 @@ +const spawn = require('child_process').spawn; +const sdk = require('matrix-js-sdk'); + +var userid = ''; +var accesstoken = ''; +var matrixclient = sdk.createClient({ + baseUrl: 'https://imninja.net', + accessToken: accesstoken, + userId: userid +}); + +/*matrixclient.on('RoomMember.membership', function(event, member) { + if(member.membership === 'invite' && member.userId === userid) { + matrixclient.joinRoom(member.roomId).done(function() { + console.log('Auto-joined %s', member.roomId); + }); + } +});*/ + + +var commands = {}; + +commands['rebuild'] = {}; +commands['rebuild'].regex = /^!rebuild ([a-zA-Z0-9\-]*)$/; +commands['rebuild'].usage = '!rebuild '; +commands['rebuild'].exec = function(args, room, event) { + var container = args[1]; + + matrixclient.sendNotice(room.roomId, 'rebuilding container ' + container); + console.log('sudo ./rebuild.sh ' + container); + + var script = spawn('/bin/bash', ['./rebuild.sh', container]); + script.on('close', function(exitcode) { + matrixclient.sendNotice(room.roomId, event.sender.userId + '\nrebuilt container ' + container + '\nexitcode: ' + exitcode); + }); +} + + +matrixclient.on('Room.timeline', function(event, room, resettimeline) { + if(resettimeline) { + return; + } + if(event.getType() !== 'm.room.message') { + return; + } + + var body = event.getContent().body; + + var bang = body.match(/^\!([a-zA-Z]*)/); + if(bang === null) { + return; + } + bang = bang[1]; + + if(commands[bang] !== undefined) { + var command = commands[bang]; + + var args = body.match(command['regex']); + if(args === null) { + matrixclient.sendNotice(room.roomId, 'usage: ' + command.usage); + return; + } + + command.exec(args, room, event); + } +}); + + + +matrixclient.startClient(); diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 0000000..8f22dbc --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +sleep 10 From b97812d4502c7fc758dd57b05bd5449b77bd261a Mon Sep 17 00:00:00 2001 From: Peery Date: Fri, 13 Oct 2017 00:59:43 +0200 Subject: [PATCH 2/2] Added .gitignore from develop --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df7386a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +package-lock.json +.idea +*.log \ No newline at end of file