aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0neGal <mail@0negal.com>2021-12-26 19:28:45 +0100
committer0neGal <mail@0negal.com>2021-12-26 19:28:45 +0100
commitdf7b714d27e5d23a6ac3e381e6684856bc818d1c (patch)
treed4afdcb0005ae1a4879c8594769df7a7524ef4b6
parente6a3c962330289e02276b0fafe4629598933e54e (diff)
downloadViper-df7b714d27e5d23a6ac3e381e6684856bc818d1c.tar.gz
Viper-df7b714d27e5d23a6ac3e381e6684856bc818d1c.zip
the renderer is no longer required for updating
Everything is now in utils.js and simply gets called through IPC calls which make it quite simple to add CLI arguments...
-rw-r--r--src/app/main.js29
-rw-r--r--src/index.js11
-rw-r--r--src/utils.js59
3 files changed, 65 insertions, 34 deletions
diff --git a/src/app/main.js b/src/app/main.js
index 352e654..8d174c1 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -1,9 +1,6 @@
const fs = require("fs");
const path = require("path");
-const unzip = require("unzipper");
-const request = require("request");
const { ipcRenderer } = require("electron");
-const { https } = require("follow-redirects");
var settings = {
gamepath: "",
@@ -19,30 +16,8 @@ if (fs.existsSync(settings.file)) {
setpath();
}
-function update() {
- request({
- json: true,
- headers: {"User-Agent": navigator.userAgent},
- url: "https://api.github.com/repos/R2Northstar/Northstar/releases/latest",
- }, (error, response, body) => {
- https.get(body.assets[0].browser_download_url, (res) => {
- let stream = fs.createWriteStream(settings.zip);
- res.pipe(stream);
- stream.on("finish",() => {
- stream.close();
- console.log("download done");
- fs.createReadStream(settings.zip).pipe(unzip.Extract({path: settings.gamepath}))
- .on("finish", () => {
- alert("Installation finished!")
- });
- })
- })
- })
-}
-
-function setpath() {
- ipcRenderer.send("setpath");
-}
+function update() {ipcRenderer.send("update")}
+function setpath() {ipcRenderer.send("setpath")}
ipcRenderer.on("newpath", (event, newpath) => {
settings.gamepath = newpath;
diff --git a/src/index.js b/src/index.js
index 0babcea..5586633 100644
--- a/src/index.js
+++ b/src/index.js
@@ -2,6 +2,8 @@ const fs = require("fs");
const path = require("path");
const { app, dialog, ipcMain, BrowserWindow } = require("electron");
+const utils = require("./utils")
+
function start() {
win = new BrowserWindow({
width: 500,
@@ -18,13 +20,8 @@ function start() {
win.loadFile(__dirname + "/app/index.html");
win.webContents.once("dom-ready", () => {win.show()});
- ipcMain.on("setpath", (event) => {
- dialog.showOpenDialog({properties: ["openDirectory"]}).then(res => {
- fs.writeFileSync(app.getPath("appData") + "/viper.json", JSON.stringify({path: res.filePaths[0]}))
-
- win.webContents.send("newpath", res.filePaths[0]);
- }).catch(err => {console.error(err)})
- })
+ ipcMain.on("update", (event) => {utils.update(win)})
+ ipcMain.on("setpath", (event) => {utils.setpath(win)})
}
app.on("ready", () => {
diff --git a/src/utils.js b/src/utils.js
new file mode 100644
index 0000000..c38cbcc
--- /dev/null
+++ b/src/utils.js
@@ -0,0 +1,59 @@
+const fs = require("fs");
+const path = require("path");
+const { app, dialog, ipcMain } = require("electron");
+
+const unzip = require("unzipper");
+const request = require("request");
+const { https } = require("follow-redirects");
+
+process.chdir(app.getPath("appData"));
+
+var settings = {
+ gamepath: "",
+ file: "viper.json",
+ zip: "/northstar.zip",
+}
+
+if (fs.existsSync(settings.file)) {
+ settings.gamepath = JSON.parse(fs.readFileSync(settings.file, "utf8")).path;
+ settings.zip = path.join(settings.gamepath + "/northstar.zip");
+console.log(settings)
+} else {
+ console.log("Game path is not set! Please select the path!");
+}
+
+
+function setpath(win) {
+ dialog.showOpenDialog({properties: ["openDirectory"]}).then(res => {
+ fs.writeFileSync(app.getPath("appData") + "/viper.json", JSON.stringify({path: res.filePaths[0]}))
+
+ win.webContents.send("newpath", res.filePaths[0]);
+ settings.gamepath = res.filePaths[0];
+ }).catch(err => {console.error(err)})
+}
+
+function update() {
+ request({
+ json: true,
+ headers: {"User-Agent": "Viper"},
+ url: "https://api.github.com/repos/R2Northstar/Northstar/releases/latest",
+ }, (error, response, body) => {
+ https.get(body.assets[0].browser_download_url, (res) => {
+ let stream = fs.createWriteStream(settings.zip);
+ res.pipe(stream);
+ stream.on("finish",() => {
+ stream.close();
+ console.log("Download done!");
+ fs.createReadStream(settings.zip).pipe(unzip.Extract({path: settings.gamepath}))
+ .on("finish", () => {
+ console.log("Installation finished!")
+ });
+ })
+ })
+ })
+}
+
+module.exports = {
+ update,
+ setpath,
+}