From 8a040d15dbf5de5fbb9949b7834c39b93b145aa7 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Tue, 25 Mar 2025 12:47:36 -0500 Subject: [PATCH] fix(servers): fixed the weird conflict import that happened --- server/scripts/updateServers.ts | 452 ++++++++++++-------------------- 1 file changed, 166 insertions(+), 286 deletions(-) diff --git a/server/scripts/updateServers.ts b/server/scripts/updateServers.ts index ab5c150..15060c5 100644 --- a/server/scripts/updateServers.ts +++ b/server/scripts/updateServers.ts @@ -4,317 +4,197 @@ import { db } from "../../database/dbclient.js"; import { serverData } from "../../database/schema/serverData.js"; import { eq, sql } from "drizzle-orm"; import { createLog } from "../services/logger/logger.js"; -import { spawn } from "child_process"; -import { getAppInfo } from "../globalUtils/appInfo.js"; -import { db } from "../../database/dbclient.js"; -import { serverData } from "../../database/schema/serverData.js"; -import { eq, sql } from "drizzle-orm"; -import { createLog } from "../services/logger/logger.js"; type UpdateServerResponse = { - success: boolean; - message: string; - success: boolean; - message: string; + success: boolean; + message: string; }; export const updateServer = async ( - devApp: string, - server: string | null + devApp: string, + server: string | null ): Promise => { - const app = await getAppInfo(devApp); - const serverInfo = await db -export const updateServer = async ( - devApp: string, - server: string | null -): Promise => { - const app = await getAppInfo(devApp); - const serverInfo = await db - .select() - .from(serverData) - .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); + const app = await getAppInfo(devApp); + const serverInfo = await db + .select() + .from(serverData) + .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); - if (serverInfo.length === 0) { - createLog( - "error", - "lst", - "serverUpdater", - `Looks like you are missing the plant token or have entered an incorrect one please try again.` - ); - return { - success: false, - message: - "Looks like you are missing the plant token or have entered an incorrect one please try again.", - }; - } - if (serverInfo.length === 0) { - createLog( - "error", - "lst", - "serverUpdater", - `Looks like you are missing the plant token or have entered an incorrect one please try again.` - ); - return { - success: false, - message: - "Looks like you are missing the plant token or have entered an incorrect one please try again.", - }; - } - - if (serverInfo[0].isUpgrading) { - createLog( - "error", - "lst", - "serverUpdater", - `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.` - ); - return { - success: false, - message: `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.`, - }; - } - if (serverInfo[0].isUpgrading) { - createLog( - "error", - "lst", - "serverUpdater", - `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.` - ); - return { - success: false, - message: `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.`, - }; - } - - const scriptPath = `${process.env.DEVFOLDER}\\server\\scripts\\update.ps1 `; - const args = [ - "-NoProfile", - "-ExecutionPolicy", - "Bypass", - "-File", - scriptPath, - "-username", - process.env.ADMUSER, // needs moved to somewhere else. - "-admpass", - process.env.ADMPASSWORD, // needs moved to somewhere else. - "-devFolder", - process.env.DEVFOLDER, - "-server", - serverInfo[0].serverDNS, - "-serverIP", - serverInfo[0].idAddress, - "-token", - serverInfo[0].plantToken, - "-build", - `${process.env.DEVFOLDER}\\builds`, - "-location", - serverInfo[0].serverLoc, - "-obslst", - serverInfo[0].oldVersion, - "-obsBuild", - app.admConfig.oldBuild, - , - ]; - - return new Promise(async (resolve, reject) => { - const process = spawn("powershell", args); - // change the server to upgradeing - await db - .update(serverData) - .set({ isUpgrading: true }) - .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); - //let stdout = ""; - //let stderr = ""; - return new Promise(async (resolve, reject) => { - const process = spawn("powershell", args); - // change the server to upgradeing - await db - .update(serverData) - .set({ isUpgrading: true }) - .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); - //let stdout = ""; - //let stderr = ""; - - // Collect stdout data - process.stdout.on("data", (data) => { - const output = data.toString().trim(); - createLog("info", "lst", "serverUpdater", `${output}`); - //onData(output); - }); - // Collect stdout data - process.stdout.on("data", (data) => { - const output = data.toString().trim(); - createLog("info", "lst", "serverUpdater", `${output}`); - //onData(output); - }); - - // Collect stderr data - process.stderr.on("data", (data) => { - const output = data.toString().trim(); - createLog("info", "lst", "serverUpdater", `${output}`); - //onData(output); - }); - // Collect stderr data - process.stderr.on("data", (data) => { - const output = data.toString().trim(); - createLog("info", "lst", "serverUpdater", `${output}`); - //onData(output); - }); - - // Handle process close - process.on("close", async (code) => { - if (code === 0) { - // if (count >= servers) { - // //onClose(`Server completed with code: ${code}`); - // } - createLog("info", "lst", "serverUpdater", `${server}`); - // Handle process close - process.on("close", async (code) => { - if (code === 0) { - // if (count >= servers) { - // //onClose(`Server completed with code: ${code}`); - // } - createLog("info", "lst", "serverUpdater", `${server}`); - - //update the last build. - try { - await db - .update(serverData) - .set({ lastUpdated: sql`NOW()`, isUpgrading: false }) - .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); - createLog( - "info", - "lst", - "serverUpdater", - `${server?.toLowerCase()}, has been updated and can now be used again.` - ); - } catch (error) { - createLog( + if (serverInfo.length === 0) { + createLog( "error", "lst", "serverUpdater", - `There was an error updating the last time the server was updated: ${error}` - ); - } - //update the last build. - try { - await db - .update(serverData) - .set({ lastUpdated: sql`NOW()`, isUpgrading: false }) - .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); - createLog( - "info", - "lst", - "serverUpdater", - `${server?.toLowerCase()}, has been updated and can now be used again.` - ); - } catch (error) { - createLog( + `Looks like you are missing the plant token or have entered an incorrect one please try again.` + ); + return { + success: false, + message: + "Looks like you are missing the plant token or have entered an incorrect one please try again.", + }; + } + + if (serverInfo[0].isUpgrading) { + createLog( "error", "lst", "serverUpdater", - `There was an error updating the last time the server was updated: ${error}` - ); - } + `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.` + ); + return { + success: false, + message: `Looks like ${serverInfo[0].plantToken} is upgrading already you cant do this again.`, + }; + } - resolve({ - success: true, - message: `${server?.toLowerCase()}, has been updated and can now be used again.`, - }); - } else { - const errorMessage = `Process exited with code ${code}`; - resolve({ - success: true, - message: `${server?.toLowerCase()}, has been updated and can now be used again.`, - }); - } else { - const errorMessage = `Process exited with code ${code}`; + const scriptPath = `${process.env.DEVFOLDER}\\server\\scripts\\update.ps1 `; + const args = [ + "-NoProfile", + "-ExecutionPolicy", + "Bypass", + "-File", + scriptPath, + "-username", + process.env.ADMUSER, // needs moved to somewhere else. + "-admpass", + process.env.ADMPASSWORD, // needs moved to somewhere else. + "-devFolder", + process.env.DEVFOLDER, + "-server", + serverInfo[0].serverDNS, + "-serverIP", + serverInfo[0].idAddress, + "-token", + serverInfo[0].plantToken, + "-build", + `${process.env.DEVFOLDER}\\builds`, + "-location", + serverInfo[0].serverLoc, + "-obslst", + serverInfo[0].oldVersion, + "-obsBuild", + app.admConfig.oldBuild, + , + ]; - // if (count >= servers) { - // //onClose(code); - // } - // if (count >= servers) { - // //onClose(code); - // } + return new Promise(async (resolve, reject) => { + const process = spawn("powershell", args); + // change the server to upgradeing + await db + .update(serverData) + .set({ isUpgrading: true }) + .where(eq(serverData.plantToken, server?.toLowerCase() ?? "")); + //let stdout = ""; + //let stderr = ""; - reject({ - success: false, - message: `${server?.toLowerCase()}, Has encounted an error while updating.`, + // Collect stdout data + process.stdout.on("data", (data) => { + const output = data.toString().trim(); + createLog("info", "lst", "serverUpdater", `${output}`); + //onData(output); }); - } - }); - reject({ - success: false, - message: `${server?.toLowerCase()}, Has encounted an error while updating.`, - }); - } - }); - // Handle errors with the process itself - process.on("error", (error) => { - //onError(err.message); - createLog("error", "lst", "serverUpdater", `${error}`); - reject(error); + // Collect stderr data + process.stderr.on("data", (data) => { + const output = data.toString().trim(); + createLog("info", "lst", "serverUpdater", `${output}`); + //onData(output); + }); + + // Handle process close + process.on("close", async (code) => { + if (code === 0) { + // if (count >= servers) { + // //onClose(`Server completed with code: ${code}`); + // } + createLog("info", "lst", "serverUpdater", `${server}`); + + //update the last build. + try { + await db + .update(serverData) + .set({ lastUpdated: sql`NOW()`, isUpgrading: false }) + .where( + eq( + serverData.plantToken, + server?.toLowerCase() ?? "" + ) + ); + createLog( + "info", + "lst", + "serverUpdater", + `${server?.toLowerCase()}, has been updated and can now be used again.` + ); + } catch (error) { + createLog( + "error", + "lst", + "serverUpdater", + `There was an error updating the last time the server was updated: ${error}` + ); + } + + resolve({ + success: true, + message: `${server?.toLowerCase()}, has been updated and can now be used again.`, + }); + } else { + const errorMessage = `Process exited with code ${code}`; + + // if (count >= servers) { + // //onClose(code); + // } + + reject({ + success: false, + message: `${server?.toLowerCase()}, Has encounted an error while updating.`, + }); + } + }); + + // Handle errors with the process itself + process.on("error", (error) => { + //onError(err.message); + createLog("error", "lst", "serverUpdater", `${error}`); + reject(error); + }); }); - }); - // Handle errors with the process itself - process.on("error", (error) => { - //onError(err.message); - createLog("error", "lst", "serverUpdater", `${error}`); - reject(error); - }); - }); }; export async function processAllServers(devApp: string) { - const servers = await db.select().from(serverData); - const servers = await db.select().from(serverData); + const servers = await db.select().from(serverData); - createLog( - "info", - "lst", - "serverUpdater", - `Running the update on all servers` - ); - let count = 1; - for (const server of servers) { - try { - const updateToServer = await updateServer(devApp, server.plantToken); - createLog("info", "lst", "serverUpdater", `${server.sName} was updated.`); - count = count + 1; - createLog( - "info", - "lst", - "serverUpdater", - `Running the update on all servers` - ); - let count = 1; - for (const server of servers) { - try { - const updateToServer = await updateServer(devApp, server.plantToken); - createLog("info", "lst", "serverUpdater", `${server.sName} was updated.`); - count = count + 1; - - //return {success: true, message: `${server.sName} was updated.`, data: updateToServer}; - } catch (error: any) { - createLog( + createLog( "info", "lst", "serverUpdater", - `Error updating ${server.sName}: ${error.message}` - ); - //return {success: false, message: `Error updating ${server.sName}: ${error.message}`}; + `Running the update on all servers` + ); + let count = 1; + for (const server of servers) { + try { + const updateToServer = await updateServer( + devApp, + server.plantToken + ); + createLog( + "info", + "lst", + "serverUpdater", + `${server.sName} was updated.` + ); + count = count + 1; + + //return {success: true, message: `${server.sName} was updated.`, data: updateToServer}; + } catch (error: any) { + createLog( + "info", + "lst", + "serverUpdater", + `Error updating ${server.sName}: ${error.message}` + ); + //return {success: false, message: `Error updating ${server.sName}: ${error.message}`}; + } } - } - //return {success: true, message: `${server.sName} was updated.`, data: updateToServer}; - } catch (error: any) { - createLog( - "info", - "lst", - "serverUpdater", - `Error updating ${server.sName}: ${error.message}` - ); - //return {success: false, message: `Error updating ${server.sName}: ${error.message}`}; - } - } }