From 2e97e2f4265ab946be252c1a1090b168d114db7f Mon Sep 17 00:00:00 2001 From: LawnCable Date: Tue, 22 May 2018 18:22:02 -0400 Subject: Test Download and running is working now for windows - but it is not done yet --- src/main/manaplus/manaplus.ts | 57 ++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 14 deletions(-) (limited to 'src/main/manaplus/manaplus.ts') diff --git a/src/main/manaplus/manaplus.ts b/src/main/manaplus/manaplus.ts index dfa86a7..22e4ffd 100644 --- a/src/main/manaplus/manaplus.ts +++ b/src/main/manaplus/manaplus.ts @@ -1,6 +1,10 @@ import { ManaPlusApp } from './ManaApp/manaApp.interface'; import { ManaPlusAppWindows } from './ManaApp/windows'; import * as os from 'os'; +import * as path from 'path'; +import * as fs from 'fs-extra'; +import { app } from 'electron'; +import { Status } from '../status'; let ManaPlusInstance:ManaPlusApp; @@ -23,9 +27,15 @@ export namespace ManaPlus{ return await ManaPlusInstance.update(); } - export async function start(server: any,engine: any,port: any,username: any,password: any){ - - const params = makeParams(server,engine,port,username,password); + export async function start(server: any,port: any,engine: any,username: any,password: any){ + let params:string[]; + try { + params = await makeParams(server,port,engine,username,password); + } catch (e){ + console.log(e); + Status.showError("Launch Preperation Failed", e.message, "Launch preparation failed") + return; + } let willUpdate:boolean=false; // check if it is installed willUpdate = !ManaPlusInstance.isInstalled(); @@ -47,15 +57,34 @@ function wasInitilized(){ return typeof(ManaPlusInstance) !== "undefined" && typeof(ManaPlusInstance) !== "undefined"; } -function makeParams(server: any,engine: any,port: any,username: any,password: any):string[]{ - // TODO check if everything is there - var parameters = [ - "-s"+server, - "-y"+engine, - "-p"+port, - "-U"+username, - "-P"+password, - ]; - // TODO make this function real - return []; +async function makeParams(server: any,port: any,engine: any,username?: any,password?: any):Promise{ + let parameters:string[] = []; + if(server && engine && port){ + parameters.push(...[ + "-s", server, + "-y", engine, + "-p", port + ]); + if(username && password){ + parameters.push(...[ + "-U", username, + "-P", password + ]); + } + } + // Setup Paths and stuff + const configDir = path.normalize(app.getPath('userData')+"/mana_config"); + const localDataDir = path.normalize(app.getPath('userData')+"/mana_local_data"); + const screenshotsDir = path.normalize(app.getPath('userData')+`/screenshots/${server}`); + await fs.ensureDir(configDir); + await fs.ensureDir(localDataDir); + await fs.ensureDir(screenshotsDir); + parameters.push(...[ + "-C", configDir, + "-L", localDataDir, + "--screenshot-dir", screenshotsDir + ]); + console.log(parameters); + + return parameters; } -- cgit v1.2.3-60-g2f50