Moved config loading to its own proper module
This commit is contained in:
parent
2fb24ee45e
commit
430e10e6b6
41
freechat-client/js/config.js
Normal file
41
freechat-client/js/config.js
Normal 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
|
@ -1,20 +1,18 @@
|
||||
const { ArgumentParser } = require('argparse')
|
||||
const { app, BrowserWindow } = require('electron')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
|
||||
let win;
|
||||
let config;
|
||||
const cfg = require('./js/config.js')
|
||||
|
||||
|
||||
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() {
|
||||
let win = new BrowserWindow({
|
||||
win = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
minWidth: 640,
|
||||
@ -35,8 +33,6 @@ function createWin() {
|
||||
});
|
||||
}
|
||||
|
||||
function load_config(config_path) {
|
||||
}
|
||||
|
||||
app.on('ready', createWin);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user