From 55cc7b59e4a9c23810371fa3fa3895ec8c3a7bf8 Mon Sep 17 00:00:00 2001 From: rr- Date: Wed, 6 Apr 2016 20:38:45 +0200 Subject: client+server: switch to yaml config --- client/build.js | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'client/build.js') diff --git a/client/build.js b/client/build.js index eb32e9b..70e63e5 100644 --- a/client/build.js +++ b/client/build.js @@ -5,40 +5,47 @@ const glob = require('glob'); const path = require('path'); const util = require('util'); const execSync = require('child_process').execSync; +const camelcase = require('camelcase'); + +function convertKeysToCamelCase(input) { + let result = {}; + Object.keys(input).map((key, _) => { + const value = input[key]; + if (value !== null && value.constructor == Object) { + result[camelcase(key)] = convertKeysToCamelCase(value); + } else { + result[camelcase(key)] = value; + } + }); + return result; +} function getVersion() { return execSync('git describe --always --dirty --long --tags').toString(); } function getConfig() { - const ini = require('ini'); + const yaml = require('js-yaml'); const merge = require('merge'); const camelcaseKeys = require('camelcase-keys'); - function parseIniFile(path) { - let result = ini.parse(fs.readFileSync(path, 'utf-8') - .replace(/#.+$/gm, '') - .replace(/\s+$/gm, '')); - Object.keys(result).map((key, _) => { - result[key] = camelcaseKeys(result[key]); - }); - return result; + function parseConfigFile(path) { + let result = yaml.load(fs.readFileSync(path, 'utf-8')); + return convertKeysToCamelCase(result); } - let config = parseIniFile('../config.ini.dist'); + let config = parseConfigFile('../config.yaml.dist'); try { - const localConfig = parseIniFile('../config.ini'); + const localConfig = parseConfigFile('../config.yaml'); config = merge.recursive(config, localConfig); } catch (e) { console.warn('Local config does not exist, ignoring'); } - delete config.basic.secret; + delete config.secret; delete config.smtp; delete config.database; - config.service.userRanks = config.service.userRanks.split(/,\s*/); - config.service.tagCategories = config.service.tagCategories.split(/,\s*/); config.meta = { version: getVersion(), buildDate: new Date().toUTCString(), @@ -63,7 +70,7 @@ function bundleHtml(config) { .replace(/(<\/head>)/, templatesHtml + '$1') .replace( /()(.*)(<\/title>)/, - util.format('$1%s$3', config.basic.name)); + util.format('$1%s$3', config.name)); fs.writeFileSync( './public/index.htm', -- cgit v1.3