mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-08 14:13:02 -04:00
update update and reboot
This commit is contained in:
parent
ea83bdaca1
commit
7205108d1f
2 changed files with 25 additions and 31 deletions
|
@ -1,35 +1,29 @@
|
||||||
const { createEmbed } = require('#utils/embed')
|
const { createEmbed } = require('#utils/embed')
|
||||||
const { editOrReply } = require('#utils/message')
|
const { editOrReply } = require('#utils/message')
|
||||||
|
|
||||||
const superagent = require('superagent')
|
const { execSync } = require('child_process');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "deploy",
|
name: "reboot",
|
||||||
label: "flags",
|
label: "flags",
|
||||||
metadata: {
|
metadata: {
|
||||||
description: `Queries pb manager to trigger a deploy and restart flow`,
|
description: `Reboot the bot.`,
|
||||||
description_short: '[MANAGER] Query deploy',
|
description_short: 'Reboot the bot.',
|
||||||
examples: ['deploy'],
|
examples: ['reboot'],
|
||||||
category: 'dev',
|
category: 'dev',
|
||||||
usage: 'deploy'
|
usage: 'reboot'
|
||||||
},
|
},
|
||||||
onBefore: context => context.user.isClientOwner,
|
onBefore: context => context.user.isClientOwner,
|
||||||
onCancel: () => { },
|
onCancel: () => { },
|
||||||
run: async (context) => {
|
run: async (context) => {
|
||||||
if (!["production","prod","prodnew"].includes(process.env.environment)) return await editOrReply(context, createEmbed("error", context, "Cannot update on this instance."))
|
|
||||||
await editOrReply(context, createEmbed("loading", context, "Querying deploy..."))
|
|
||||||
|
|
||||||
try{
|
try{
|
||||||
const t = Date.now()
|
await editOrReply(context, createEmbed("loading", context, "Updating bot..."));
|
||||||
|
execSync("git pull");
|
||||||
// Call server to query update
|
await editOrReply(context, createEmbed("success", context, "Rebooting bot..."));
|
||||||
await superagent.post(`${process.env.PB_MANAGER_HOST}_pbs/v1/DeployPbService`)
|
execSync("pm2 restart labscore-prd");
|
||||||
.set("Authorization", process.env.PB_MANAGER_KEY)
|
|
||||||
|
|
||||||
return await editOrReply(context, createEmbed("success", context, "Deployment queried at manager. Shutting down."))
|
|
||||||
}catch(e){
|
}catch(e){
|
||||||
console.log(e)
|
console.log(e)
|
||||||
return await editOrReply(context, createEmbed("error", context, "Manager reported error during deploy query."))
|
await editOrReply(context, createEmbed("error", context, "Unable to reboot."))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
|
@ -1,32 +1,32 @@
|
||||||
const { createEmbed } = require('#utils/embed')
|
const { createEmbed } = require('#utils/embed')
|
||||||
const { editOrReply } = require('#utils/message')
|
const { editOrReply } = require('#utils/message')
|
||||||
|
|
||||||
const superagent = require('superagent')
|
const { execSync } = require('child_process');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "update",
|
name: "update",
|
||||||
label: "flags",
|
label: "flags",
|
||||||
metadata: {
|
metadata: {
|
||||||
description: `Queries pb manager to trigger an update flow`,
|
description: `Updates bot code from git.\nUse ${smallPill('-f')} to force an update.`,
|
||||||
description_short: '[MANAGER] Query update',
|
description_short: 'Update bot code.',
|
||||||
examples: ['update'],
|
examples: ['update'],
|
||||||
category: 'dev',
|
category: 'dev',
|
||||||
usage: 'update'
|
usage: 'update'
|
||||||
},
|
},
|
||||||
onBefore: context => context.user.isClientOwner,
|
onBefore: context => context.user.isClientOwner,
|
||||||
onCancel: () => { },
|
onCancel: () => { },
|
||||||
run: async (context) => {
|
run: async (context, args) => {
|
||||||
if (!["production","prod","prodnew"].includes(process.env.environment)) return await editOrReply(context, createEmbed("error", context, "Cannot update on this instance."))
|
await editOrReply(context, createEmbed("loading", context, "Updating bot..."))
|
||||||
await editOrReply(context, createEmbed("loading", context, "Querying manager..."))
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const t = Date.now()
|
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, createEmbed("warning", context, "Already up to date."))
|
||||||
|
|
||||||
// Call server to query update
|
let com = r.toString().match(/([a-z0-9]{7})\.\.([a-z0-9]{7})/)
|
||||||
await superagent.post(`${process.env.PB_MANAGER_HOST}_pbs/v1/UpdatePbService`)
|
|
||||||
.set("Authorization", process.env.PB_MANAGER_KEY)
|
|
||||||
|
|
||||||
return await editOrReply(context, createEmbed("success", context, "Update queried at manager"))
|
return await editOrReply(context, createEmbed("success", context, `Updated ${com[1]} -> ${com[2]} in ${((Date.now() - t) / 1000).toFixed(2)}s`))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
return await editOrReply(context, createEmbed("error", context, "Manager reported error during update query."))
|
return await editOrReply(context, createEmbed("error", context, "Manager reported error during update query."))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue