Add !version command
parent
c5a40e2f7a
commit
9c322a5af3
|
@ -17,6 +17,7 @@ const suspend = require('./modules/suspend');
|
||||||
const webserver = require('./modules/webserver');
|
const webserver = require('./modules/webserver');
|
||||||
const greeting = require('./modules/greeting');
|
const greeting = require('./modules/greeting');
|
||||||
const typingProxy = require('./modules/typingProxy');
|
const typingProxy = require('./modules/typingProxy');
|
||||||
|
const version = require('./modules/version');
|
||||||
const attachments = require("./data/attachments");
|
const attachments = require("./data/attachments");
|
||||||
const {ACCIDENTAL_THREAD_MESSAGES} = require('./data/constants');
|
const {ACCIDENTAL_THREAD_MESSAGES} = require('./data/constants');
|
||||||
|
|
||||||
|
@ -167,6 +168,7 @@ module.exports = {
|
||||||
await greeting(bot);
|
await greeting(bot);
|
||||||
await webserver(bot);
|
await webserver(bot);
|
||||||
await typingProxy(bot);
|
await typingProxy(bot);
|
||||||
|
await version(bot);
|
||||||
|
|
||||||
// Connect to Discord
|
// Connect to Discord
|
||||||
console.log('Connecting 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