diff options
Diffstat (limited to 'src/utils.js')
-rw-r--r-- | src/utils.js | 59 |
1 files changed, 59 insertions, 0 deletions
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, +} |