diff --git a/commands/admin/update.js b/commands/admin/update.js index 7de9db0..7c9a75f 100644 --- a/commands/admin/update.js +++ b/commands/admin/update.js @@ -1,4 +1,5 @@ const calculateReloaded = require("../../util/calculateReloaded"); +const executeCommand = require("../../util/executeCommand"); const reloadCommands = require("../../util/reloadCommands"); module.exports = { @@ -27,10 +28,12 @@ module.exports = { let commitCount = stdout.split(/\r\n|\r|\n/).length - 1 sendText = `${sendText}\n\nLatest commits (${commitCount}):\n${stdout}` if(sendText.length >= 2000){ - sendText.slice(1955) + sendText = sendText.slice(1955) sendText = `${sendText}\n... Message is too long to show everything` } message.channel.send(sendText) + const githash = executeCommand(`git`, ["rev-parse", "--short", "HEAD"]); + client.githash = githash.error ? "N/A" : githash.output; if (err) console.log(stderr) }) } diff --git a/commands/info/botinfo.js b/commands/info/botinfo.js index 843b465..b806459 100644 --- a/commands/info/botinfo.js +++ b/commands/info/botinfo.js @@ -12,10 +12,11 @@ module.exports = { let descriptionArr = [`Name: ${client.user.username}`, `Prefix: ${prefix}`, `Total Servers: ${guildInfo.guildCount}`, - `Total Members: ${guildInfo.totalMembers}`, + `Total Members: ${guildInfo.totalMembers} (${guildInfo.uniqueMemberCount} unique)`, `Total Commands: ${client.commands.size}`, `Creation Date: ${getCreationDate(client)}`, - `Source: [Click Here](https://github.com/SileNce5k/discord_bot)` + `Source: [Click Here](https://github.com/SileNce5k/discord_bot)`, + `Current Version: ${client.githash}` ] let description = ""; diff --git a/server.js b/server.js index 871dc93..30ed3a3 100644 --- a/server.js +++ b/server.js @@ -1,6 +1,7 @@ const fs = require('fs'); const createInitialConfig = require("./util/createInitialConfig") const convertJSONToSQL = require('./util/timer/convertJSONToSQL'); +const executeCommand = require('./util/executeCommand.js'); const sqlite3 = require('sqlite3').verbose(); if(!fs.existsSync("./data/config.json")) { createInitialConfig(); @@ -56,6 +57,9 @@ client.settings.set("presenceType", presenceType); client.settings.set("presenceText", presenceText); client.settings.set("globalPrefix", globalPrefix); +const githash = executeCommand(`git`, ["rev-parse", "--short", "HEAD"]); +client.githash = githash.error ? "N/A" : githash.output; + const reloadCommands = require("./util/reloadCommands.js"); const onMessage = require('./server/message'); const onReady = require('./server/ready'); diff --git a/util/executeCommand.js b/util/executeCommand.js index ee4cce6..05985c5 100644 --- a/util/executeCommand.js +++ b/util/executeCommand.js @@ -2,13 +2,14 @@ const { execFileSync } = require('child_process'); module.exports = function(command, commandArgs, verbose=false) { if (typeof command !== 'string' || !Array.isArray(commandArgs)) return { error: true }; console.log("Executing:", command, commandArgs.join(" ")); + let output; try { - const output = execFileSync(command, commandArgs, {encoding: 'utf8'}) + output = execFileSync(command, commandArgs, {encoding: 'utf8'}) if (output.length !== 0 && verbose) console.log(output) } catch (error) { console.error(`Error executing ${command} command:`, error); return { error: true }; } - return { error: false }; + return { error: false, output}; } \ No newline at end of file