aboutsummaryrefslogtreecommitdiff
path: root/src/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js100
1 files changed, 58 insertions, 42 deletions
diff --git a/src/index.js b/src/index.js
index 259d8ad..37ea11e 100644
--- a/src/index.js
+++ b/src/index.js
@@ -7,6 +7,8 @@ const utils = require("./utils");
const cli = require("./cli");
const requests = require("./extras/requests");
+var log = console.log;
+
// Starts the actual BrowserWindow, which is only run when using the
// GUI, for the CLI this function is never called.
function start() {
@@ -33,46 +35,59 @@ function start() {
},
});
- // When --debug is added it'll open the dev tools
+ // when --debug is added it'll open the dev tools
if (cli.hasParam("debug")) {win.openDevTools()}
- // General setup
+ // general setup
win.removeMenu();
win.loadFile(__dirname + "/app/index.html");
+ win.send = (channel, data) => {
+ win.webContents.send(channel, data);
+ }; send = win.send;
+
ipcMain.on("exit", () => {process.exit(0)});
ipcMain.on("minimize", () => {win.minimize()});
ipcMain.on("relaunch", () => {app.relaunch();app.exit()});
+
+ // passthrough to renderer from main
+ ipcMain.on("winLog", (event, ...args) => {send("log", ...args)});
+ ipcMain.on("winAlert", (event, ...args) => {send("alert", ...args)});
+
+ // mod states
+ ipcMain.on("failedmod", (event, modname) => {send("failedmod", modname)});
+ ipcMain.on("removedmod", (event, modname) => {send("removedmod", modname)});
+ ipcMain.on("guigetmods", (event, ...args) => {send("mods", utils.mods.list())});
+ ipcMain.on("installedmod", (event, modname) => {send("installedmod", modname)});
+
+ // install calls
ipcMain.on("installfrompath", (event, path) => {utils.mods.install(path)});
ipcMain.on("installfromurl", (event, url) => {utils.mods.installFromURL(url)});
- ipcMain.on("winLog", (event, ...args) => {win.webContents.send("log", ...args)});
- ipcMain.on("winAlert", (event, ...args) => {win.webContents.send("alert", ...args)});
- ipcMain.on("ns-update-event", (event) => win.webContents.send("ns-update-event", event));
- ipcMain.on("failedmod", (event, modname) => {win.webContents.send("failedmod", modname)});
- ipcMain.on("removedmod", (event, modname) => {win.webContents.send("removedmod", modname)});
- ipcMain.on("installedmod", (event, modname) => {win.webContents.send("installedmod", modname)});
- ipcMain.on("guigetmods", (event, ...args) => {win.webContents.send("mods", utils.mods.list())});
+ win.webContents.on("dom-ready", () => {
+ send("mods", utils.mods.list());
+ });
+
+ // ensures gamepath still exists and is valid on startup
let gamepathlost = false;
ipcMain.on("gamepathlost", (event, ...args) => {
if (! gamepathlost) {
gamepathlost = true;
- win.webContents.send("gamepathlost");
+ send("gamepathlost");
}
});
ipcMain.on("savesettings", (event, obj) => {utils.saveSettings(obj)});
+ // allows renderer to check for updates
+ ipcMain.on("ns-update-event", (event) => {send("ns-update-event", event)});
ipcMain.on("can-autoupdate", () => {
if (! autoUpdater.isUpdaterActive() || cli.hasParam("no-vp-updates")) {
- win.webContents.send("cant-autoupdate");
+ send("cant-autoupdate");
}
})
- win.webContents.on("dom-ready", () => {
- win.webContents.send("mods", utils.mods.list());
- });
-
+ // start auto-update process
if (utils.settings.autoupdate) {
if (cli.hasParam("no-vp-updates")) {
utils.handleNorthstarUpdating();
@@ -84,11 +99,11 @@ function start() {
}
autoUpdater.on("update-downloaded", () => {
- win.webContents.send("updateavailable");
+ send("updateavailable");
});
- // Updates and restarts Viper, if user says yes to do so.
- // Otherwise it'll do it on the next start up.
+ // updates and restarts Viper, if user says yes to do so.
+ // otherwise it'll do it on the next start up.
ipcMain.on("updatenow", () => {
autoUpdater.quitAndInstall();
})
@@ -104,9 +119,9 @@ ipcMain.on("installmod", () => {
if (res.filePaths.length != 0) {
utils.mods.install(res.filePaths[0]);
} else {
- win.webContents.send("setbuttons", true);
+ send("setbuttons", true);
}
- }).catch(err => {console.error(err)});
+ }).catch(err => {error(err)});
}
})
@@ -132,44 +147,45 @@ ipcMain.on("setpath", (event, value) => {
}
});
-function _sendVersionsInfo() {
- win.webContents.send("version", {
+// retrieves various local version numbers
+function sendVersionsInfo() {
+ send("version", {
ns: utils.getNSVersion(),
tf2: utils.getTF2Version(),
vp: "v" + require("../package.json").version
});
}
-// Sends the version info back to the renderer
-ipcMain.on("getversion", () => {_sendVersionsInfo()});
+// sends the version info back to the renderer
+ipcMain.on("getversion", () => {sendVersionsInfo()});
-// Prints out version info for the CLI
+// prints out version info for the CLI
ipcMain.on("versioncli", () => {
- console.log("Viper: v" + require("../package.json").version);
- console.log("Northstar: " + utils.getNSVersion());
- console.log("Node: " + process.version);
- console.log("Electron: v" + process.versions.electron);
+ log("Viper: v" + require("../package.json").version);
+ log("Northstar: " + utils.getNSVersion());
+ log("Node: " + process.version);
+ log("Electron: v" + process.versions.electron);
cli.exit();
})
ipcMain.on("getmods", () => {
let mods = utils.mods.list();
if (mods.all.length > 0) {
- console.log(`${utils.lang("general.mods.installed")} ${mods.all.length}`);
- console.log(`${utils.lang("general.mods.enabled")} ${mods.enabled.length}`);
+ log(`${utils.lang("general.mods.installed")} ${mods.all.length}`);
+ log(`${utils.lang("general.mods.enabled")} ${mods.enabled.length}`);
for (let i = 0; i < mods.enabled.length; i++) {
- console.log(` ${mods.enabled[i].Name} ${mods.enabled[i].Version}`);
+ log(` ${mods.enabled[i].Name} ${mods.enabled[i].Version}`);
}
if (mods.disabled.length > 0) {
- console.log(`${utils.lang("general.mods.disabled")} ${mods.disabled.length}`);
+ log(`${utils.lang("general.mods.disabled")} ${mods.disabled.length}`);
for (let i = 0; i < mods.disabled.length; i++) {
- console.log(` ${mods.disabled[i].Name} ${mods.disabled[i].Version}`);
+ log(` ${mods.disabled[i].Name} ${mods.disabled[i].Version}`);
}
}
cli.exit(0);
} else {
- console.log("No mods installed");
+ log("No mods installed");
cli.exit(0);
}
})
@@ -177,7 +193,7 @@ ipcMain.on("getmods", () => {
ipcMain.on("newpath", (event, newpath) => {
if (newpath === false && !win.isVisible()) {
- win.webContents.send("nopathselected");
+ win.send("nopathselected");
} else {
_sendVersionsInfo();
if (!win.isVisible()) {
@@ -185,13 +201,13 @@ ipcMain.on("newpath", (event, newpath) => {
}
}
}); ipcMain.on("wrongpath", () => {
- win.webContents.send("wrongpath");
+ win.send("wrongpath");
});
-// Ensures ./ is the config folder where viper.json is located.
+// ensures PWD/CWD is the config folder where viper.json is located
process.chdir(app.getPath("appData"));
-// Starts the GUI or CLI
+// starts the GUI or CLI
if (cli.hasArgs()) {
if (cli.hasParam("updatevp")) {
utils.updatevp(true);
@@ -205,11 +221,11 @@ if (cli.hasArgs()) {
})
}
-// Returns cached requests
+// returns cached requests
ipcMain.on("get-ns-notes", async () => {
- win.webContents.send("ns-notes", await requests.getNsReleaseNotes());
+ win.send("ns-notes", await requests.getNsReleaseNotes());
});
ipcMain.on("get-vp-notes", async () => {
- win.webContents.send("vp-notes", await requests.getVpReleaseNotes());
+ win.send("vp-notes", await requests.getVpReleaseNotes());
});