freechat/freechat-client/js/config.js

42 lines
1.1 KiB
JavaScript

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