mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
80 lines
1.7 KiB
JavaScript
80 lines
1.7 KiB
JavaScript
const { app, BrowserWindow } = require("electron/main");
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
const { spawn } = require("child_process");
|
|
const yargs = require("yargs");
|
|
|
|
yargs
|
|
.alias("c", "config")
|
|
.describe("c", "olympus.json config location")
|
|
.string("rp");
|
|
|
|
yargs.alias("s", "server").describe("s", "run in server mode").string("rp");
|
|
args = yargs.argv;
|
|
|
|
console.log(`Config location: ${args["config"]}`);
|
|
var frontendPort = 3000;
|
|
var serverMode = args["server"] ?? false;
|
|
if (fs.existsSync(args["config"])) {
|
|
var json = JSON.parse(fs.readFileSync(args["config"], "utf-8"));
|
|
frontendPort = json["frontend"]["port"];
|
|
} else {
|
|
console.log("Failed to read config, trying default port");
|
|
}
|
|
|
|
function createWindow() {
|
|
const win = new BrowserWindow({
|
|
icon: "./../img/olympus.ico",
|
|
});
|
|
|
|
win.loadURL(
|
|
`http://localhost:${frontendPort}${serverMode ? "/?server" : ""}`
|
|
);
|
|
win.setMenuBarVisibility(false);
|
|
|
|
if (serverMode) {
|
|
} else {
|
|
win.maximize();
|
|
}
|
|
}
|
|
|
|
app
|
|
.whenReady()
|
|
.then(() => {
|
|
const server = spawn("node", [
|
|
path.join(".", "build", "www.js"),
|
|
"--config",
|
|
args["config"],
|
|
"--vite",
|
|
]);
|
|
|
|
server.stdout.on("data", (data) => {
|
|
console.log(`${data}`);
|
|
});
|
|
|
|
server.stderr.on("data", (data) => {
|
|
console.error(`stderr: ${data}`);
|
|
});
|
|
|
|
server.on("close", (code) => {
|
|
console.log(`Child process exited with code ${code}`);
|
|
});
|
|
|
|
createWindow();
|
|
|
|
app.on("activate", () => {
|
|
if (BrowserWindow.getAllWindows().length === 0) {
|
|
createWindow();
|
|
}
|
|
});
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|
|
|
|
app.on("window-all-closed", () => {
|
|
if (process.platform !== "darwin") {
|
|
app.quit();
|
|
}
|
|
});
|