Moved config loading to its own proper module

This commit is contained in:
shockrah 2021-01-01 17:14:00 -08:00
parent 2fb24ee45e
commit 430e10e6b6
2 changed files with 48 additions and 11 deletions

View File

@ -0,0 +1,41 @@
const { ArgumentParser } = require('argparse')
const fs = require('fs')
/**
* @param {ArgumentParset} parser
* @returns {Config} { path }
*/
function get_config(parser) {
const a = parser.parse_args()
const defaultcfg = `${process.env.HOME || process.env.USERPROFILE}/.config/freechat/config.json`
// we'll just assume that the config is there as per the installation process
const path = (a['config']) ? a['config'] : defaultcfg
const file_contents = fs.readFileSync(path)
const file_json = JSON.parse(file_contents)
// now we'll just blindly construct the config object from here on out
let ret = { path: path }
for(const key in file_json.keys) {
if(key == 'path') { continue } // don't overwrite the old path
else {
ret[key] = file_json[key]
}
}
return ret
}
/**
* Loads the parse with the various arguments that the program takes
* @param {ArgumentParser} parser
*/
function load_parser() {
const parser = new ArgumentParser({
description: 'Freechat Electron Client'
})
parser.add_argument('-c', '--config', {help: 'Specify config path'})
return parser
}
exports.load_parser = load_parser
exports.get_config = get_config

View File

@ -1,20 +1,18 @@
const { ArgumentParser } = require('argparse') const { ArgumentParser } = require('argparse')
const { app, BrowserWindow } = require('electron') const { app, BrowserWindow } = require('electron')
const path = require('path') const path = require('path')
const fs = require('fs')
let win; const cfg = require('./js/config.js')
let config;
let win
const config = cfg.get_config(cfg.load_parser())
console.log('Config: ', config)
const parser = new ArgumentParser({
description: 'Freechat Electron Client'
})
parser.add_argument('-c', '--config', {help: 'Specify config path'})
console.log(parser.parse_args())
function createWin() { function createWin() {
let win = new BrowserWindow({ win = new BrowserWindow({
width: 800, width: 800,
height: 600, height: 600,
minWidth: 640, minWidth: 640,
@ -35,8 +33,6 @@ function createWin() {
}); });
} }
function load_config(config_path) {
}
app.on('ready', createWin); app.on('ready', createWin);