Add !version command

master
Dragory 2018-03-13 07:59:27 +02:00
parent c5a40e2f7a
commit 9c322a5af3
2 changed files with 49 additions and 0 deletions

View File

@ -17,6 +17,7 @@ const suspend = require('./modules/suspend');
const webserver = require('./modules/webserver');
const greeting = require('./modules/greeting');
const typingProxy = require('./modules/typingProxy');
const version = require('./modules/version');
const attachments = require("./data/attachments");
const {ACCIDENTAL_THREAD_MESSAGES} = require('./data/constants');
@ -167,6 +168,7 @@ module.exports = {
await greeting(bot);
await webserver(bot);
await typingProxy(bot);
await version(bot);
// Connect to Discord
console.log('Connecting to Discord...');

47
src/modules/version.js Normal file
View File

@ -0,0 +1,47 @@
const path = require('path');
const fs = require('fs');
const {promisify} = require('util');
const utils = require("../utils");
const threadUtils = require("../threadUtils");
const access = promisify(fs.access);
const readFile = promisify(fs.readFile);
const GIT_DIR = path.join(__dirname, '..', '..', '.git');
module.exports = bot => {
const addInboxServerCommand = (...args) => threadUtils.addInboxServerCommand(bot, ...args);
addInboxServerCommand('version', async (msg, args, thread) => {
const packageJson = require('../../package.json');
const packageVersion = packageJson.version;
let response = `Modmail v${packageVersion}`;
let isGit;
try {
await access(GIT_DIR);
isGit = true;
} catch (e) {
isGit = false;
}
if (isGit) {
let commitHash;
const HEAD = await readFile(path.join(GIT_DIR, 'HEAD'), {encoding: 'utf8'});
if (HEAD.startsWith('ref:')) {
// Branch
const ref = HEAD.match(/^ref: (.*)$/m)[1];
commitHash = (await readFile(path.join(GIT_DIR, ref), {encoding: 'utf8'})).trim();
} else {
// Detached head
commitHash = HEAD.trim();
}
response += ` (${commitHash.slice(0, 7)})`;
}
utils.postSystemMessageWithFallback(msg.channel, thread, response);
});
};