diff --git a/commands/message/dev/deploy.js b/commands/message/dev/deploy.js new file mode 100644 index 0000000..ded7ee2 --- /dev/null +++ b/commands/message/dev/deploy.js @@ -0,0 +1,33 @@ +const { createEmbed } = require('../../../labscore/utils/embed') +const { editOrReply } = require('../../../labscore/utils/message') + +module.exports = { + name: "update", + label: "flags", + metadata: { + description: `Queries pb manager to trigger a deploy and restart flow`, + description_short: '[MANAGER] Query deploy', + examples: ['update'], + category: 'dev', + usage: 'update' + }, + onBefore: context => context.user.isClientOwner, + onCancel: () => { }, + run: async (context) => { + if (process.env.environment == "prodnew") return await editOrReply(context, createEmbed("error", "Cannot deploy on this instance.")) + await editOrReply(context, createEmbed("loading", context, "Querying deploy...")) + + try { + const t = Date.now() + + // Call server to query update + await superagent.post(`${process.env.PB_MANAGER_HOST}_pbs/DeployPbService`) + .set("Authorization", process.env.PB_MANAGER_KEY) + + return await editOrReply(context, createEmbed("success", "Deployment queried at manager. Shutting down.")) + } catch (e) { + console.log(e) + return await editOrReply(context, createEmbed("error", "Manager reported error during deploy query.")) + } + } +}; \ No newline at end of file diff --git a/commands/message/dev/update.js b/commands/message/dev/update.js index 663426e..ba82663 100644 --- a/commands/message/dev/update.js +++ b/commands/message/dev/update.js @@ -1,34 +1,33 @@ const { createEmbed } = require('../../../labscore/utils/embed') const { editOrReply } = require('../../../labscore/utils/message') -const { execSync } = require("child_process"); -const { icon, highlight, smallPill } = require('../../../labscore/utils/markdown'); - module.exports = { name: "update", label: "flags", metadata: { - description: `Fetches latest bot version.\nUse ${smallPill('-f')} to force an update.`, - description_short: 'Bot update', - examples: ['update -f'], + description: `Queries pb manager to trigger an update flow`, + description_short: '[MANAGER] Query update', + examples: ['update'], category: 'dev', - usage: 'update [-f]' + usage: 'update' }, onBefore: context => context.user.isClientOwner, - onCancel: ()=>{}, - run: async (context, args) => { - let response = await editOrReply(context, createEmbed("loading", context, "Updating bot...")) - try{ - const t = Date.now() - if(args.flags.includes('-force') || args.flags.includes('-f')) execSync("git checkout .") - const r = execSync("git pull") - if(r.toString().includes("Already up to date.")) return await editOrReply(context, {embeds: [createEmbed("warning", context, "Already up to date.")]}) + onCancel: () => { }, + run: async (context) => { + if (process.env.environment == "prodnew") return await editOrReply(context, createEmbed("error", "Cannot update on this instance.")) + await editOrReply(context, createEmbed("loading", context, "Querying manager...")) - let com = r.toString().match(/([a-z0-9]{7})\.\.([a-z0-9]{7})/) - return await editOrReply(context, { content: `${icon("success_simple")} Updated ${highlight(com[1] + ' -> ' + com[2])} in ${((Date.now() - t) / 1000).toFixed(2)}s`, embeds: []}) - }catch(e){ + try { + const t = Date.now() + + // Call server to query update + await superagent.post(`${process.env.PB_MANAGER_HOST}_pbs/UpdatePbService`) + .set("Authorization", process.env.PB_MANAGER_KEY) + + return await editOrReply(context, createEmbed("success", "Update queried at manager")) + } catch (e) { console.log(e) - return await editOrReply(context, createEmbed("error", context, "Update failed. Use -f to force update.")) + return await editOrReply(context, createEmbed("error", "Manager reported error during update query.")) } } }; \ No newline at end of file