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 { 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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user