Tom Butcher 7dbe7da4ee
Some checks reported errors
farmcontrol/farmcontrol-server/pipeline/head Something is wrong with the build of this commit
Overhauled server code.
2025-12-28 21:46:58 +00:00

44 lines
1.2 KiB
JavaScript

import { loadConfig } from "./config.js";
import log4js from "log4js";
import { createElectronWindow } from "./electron/window.js";
import { setupIPC } from "./electron/ipc.js";
import { SocketClient } from "./socket/socketclient.js";
// Load configuration
const config = loadConfig();
const logger = log4js.getLogger("App");
logger.level = config.logLevel;
const isHeadless = process.argv.includes("--headless");
export async function init() {
if (!isHeadless) {
// Create Electron window first
logger.info("Creating electron window...");
await createElectronWindow().catch((err) => {
logger.warn("Failed to create Electron window:", err);
});
// Setup IPC communication after window is created
setupIPC().catch((err) => {
logger.warn("Failed to setup IPC:", err);
});
} else {
logger.info("Running in headless mode. Skipping window creation.");
}
const socketClient = new SocketClient();
// Make socket client globally accessible for IPC handlers
global.socketClient = socketClient;
socketClient.connect();
process.on("SIGINT", () => {
logger.info("Shutting down...");
socketClient.disconnect();
process.exit(0);
});
}
init();