Add !version command
parent
c5a40e2f7a
commit
9c322a5af3
|
@ -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...');
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
};
|
Loading…
Reference in New Issue