From 2b809f99e4c9268e927cce4f2d2fd8a76d9d710d Mon Sep 17 00:00:00 2001 From: Annika <56906084+AnnikaCodes@users.noreply.github.com> Date: Sun, 9 Aug 2020 20:24:32 -0700 Subject: [PATCH] Support updating private code in /updateserver (#7183) --- server/chat-commands/admin.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/server/chat-commands/admin.ts b/server/chat-commands/admin.ts index 41012360a4..8abae0d8cb 100644 --- a/server/chat-commands/admin.ts +++ b/server/chat-commands/admin.ts @@ -735,7 +735,7 @@ export const commands: ChatCommands = { async updateserver(target, room, user, connection) { if (!this.canUseConsole()) return false; - + const isPrivate = toID(target) === 'private'; if (Monitor.updateServerLock) { return this.errorReply(`/updateserver - Another update is already in progress (or a previous update crashed).`); } @@ -746,7 +746,7 @@ export const commands: ChatCommands = { this.stafflog(`$ ${command}`); return new Promise((resolve, reject) => { child_process.exec(command, { - cwd: __dirname, + cwd: `${__dirname}/../../${isPrivate ? Config.privatecodepath || '../main-private/' : ``}`, }, (error, stdout, stderr) => { let log = `[o] ${stdout}[e] ${stderr}`; if (error) log = `[c] ${error.code}\n${log}`; @@ -757,13 +757,13 @@ export const commands: ChatCommands = { }; this.sendReply(`Fetching newest version...`); - this.addGlobalModAction(`${user.name} used /updateserver`); + this.addGlobalModAction(`${user.name} used /updateserver ${isPrivate ? `private` : `public`}`); let [code, stdout, stderr] = await exec(`git fetch`); if (code) throw new Error(`updateserver: Crash while fetching - make sure this is a Git repository`); - if (!stdout && !stderr) { + if (!isPrivate && !stdout && !stderr) { this.sendReply(`There were no updates.`); - [code, stdout, stderr] = await exec('node ../../build'); + [code, stdout, stderr] = await exec('node ./build'); if (stderr) { return this.errorReply(`Crash while rebuilding: ${stderr}`); } @@ -815,11 +815,13 @@ export const commands: ChatCommands = { await exec(`git stash pop`); this.sendReply(`FAILED, old changes restored.`); } - [code, stdout, stderr] = await exec('node ../../build'); - if (stderr) { - return this.errorReply(`Crash while rebuilding: ${stderr}`); + if (!isPrivate) { + [code, stdout, stderr] = await exec('node ./build'); + if (stderr) { + return this.errorReply(`Crash while rebuilding: ${stderr}`); + } + this.sendReply(`Rebuilt.`); } - this.sendReply(`Rebuilt.`); Monitor.updateServerLock = false; },