From 31744a69dde6e59bb8ffe6c26399839f736fcb4c Mon Sep 17 00:00:00 2001 From: Dominik Sigmund <dominik.sigmund@br.de> Date: Wed, 19 Feb 2020 12:33:32 +0100 Subject: [PATCH] Added Examples --- README.md | 7 +++- .../defaults-overwrite/config.defaults.json | 6 +++ examples/defaults-overwrite/config.json | 6 +++ examples/defaults-overwrite/index.js | 3 ++ examples/env/config.defaults.json | 0 examples/env/config.json | 0 examples/env/index.js | 0 examples/env/server.env | 0 examples/only-defaults/config.defaults.json | 6 +++ examples/only-defaults/index.js | 3 ++ index.js | 39 ++++++++++++------- 11 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 examples/defaults-overwrite/config.defaults.json create mode 100644 examples/defaults-overwrite/config.json create mode 100644 examples/defaults-overwrite/index.js create mode 100644 examples/env/config.defaults.json create mode 100644 examples/env/config.json create mode 100644 examples/env/index.js create mode 100644 examples/env/server.env create mode 100644 examples/only-defaults/config.defaults.json create mode 100644 examples/only-defaults/index.js diff --git a/README.md b/README.md index 31d758b..2dba117 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,12 @@ [](https://it-devops-01.br-edv.brnet.int/general/config/commits/master) [](https://it-devops-01.br-edv.brnet.int/general/config/commits/master) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) +[](https://it-devops-01.br-edv.brnet.int:8999/dashboard?id=config) Simple Config Log with HashiCorp Vault support. @@ -25,5 +31,4 @@ It reads from the following sources, performing a deep merge: ## TODO / Missing - hashicorp values support: if value == "vault:", treat it as secret -- sonarqube + badges - tests diff --git a/examples/defaults-overwrite/config.defaults.json b/examples/defaults-overwrite/config.defaults.json new file mode 100644 index 0000000..8d6cd81 --- /dev/null +++ b/examples/defaults-overwrite/config.defaults.json @@ -0,0 +1,6 @@ +{ + "setting":"value", + "another": { + "setting":"avalue" + } +} \ No newline at end of file diff --git a/examples/defaults-overwrite/config.json b/examples/defaults-overwrite/config.json new file mode 100644 index 0000000..de6fd1f --- /dev/null +++ b/examples/defaults-overwrite/config.json @@ -0,0 +1,6 @@ +{ + "setting":"overwritten", + "another": { + "more":"settings" + } +} \ No newline at end of file diff --git a/examples/defaults-overwrite/index.js b/examples/defaults-overwrite/index.js new file mode 100644 index 0000000..798f2f4 --- /dev/null +++ b/examples/defaults-overwrite/index.js @@ -0,0 +1,3 @@ +let config = require('../../index') + +console.log(JSON.stringify(config, undefined, 2)) \ No newline at end of file diff --git a/examples/env/config.defaults.json b/examples/env/config.defaults.json new file mode 100644 index 0000000..e69de29 diff --git a/examples/env/config.json b/examples/env/config.json new file mode 100644 index 0000000..e69de29 diff --git a/examples/env/index.js b/examples/env/index.js new file mode 100644 index 0000000..e69de29 diff --git a/examples/env/server.env b/examples/env/server.env new file mode 100644 index 0000000..e69de29 diff --git a/examples/only-defaults/config.defaults.json b/examples/only-defaults/config.defaults.json new file mode 100644 index 0000000..8d6cd81 --- /dev/null +++ b/examples/only-defaults/config.defaults.json @@ -0,0 +1,6 @@ +{ + "setting":"value", + "another": { + "setting":"avalue" + } +} \ No newline at end of file diff --git a/examples/only-defaults/index.js b/examples/only-defaults/index.js new file mode 100644 index 0000000..798f2f4 --- /dev/null +++ b/examples/only-defaults/index.js @@ -0,0 +1,3 @@ +let config = require('../../index') + +console.log(JSON.stringify(config, undefined, 2)) \ No newline at end of file diff --git a/index.js b/index.js index 1878007..ed255cb 100644 --- a/index.js +++ b/index.js @@ -1,19 +1,11 @@ var fs = require('fs') +var path = require('path') var merge = require('lodash.merge') -let config = {} - -if (fs.accessSync('./config.defaults.json')) { - config = JSON.parse(fs.readFileSync('./config.defaults.json', 'utf8')) -} - -if (fs.accessSync('./config.json')) { - config = merge(config, JSON.parse(fs.readFileSync('./config.json', 'utf8'))) -} +let configDefaults = path.join(path.dirname(require.main.filename || process.mainModule.filename), 'config.defaults.json') +let configLocal = path.join(path.dirname(require.main.filename || process.mainModule.filename), 'config.json') -iterate(config) - -module.exports = config +let config = {} const iterate = function (obj) { for (let index = 0; index < Object.keys(obj).length; index++) { @@ -21,8 +13,29 @@ const iterate = function (obj) { if (process.env[element]) { obj[element] = process.env[element] } + // TODO: encode values here if (typeof element === 'object') { iterate(element) } } -} \ No newline at end of file +} + + +try { + fs.accessSync(configDefaults) + config = JSON.parse(fs.readFileSync(configDefaults, 'utf8')) +} catch (error) { + console.log('Could not read ' + configDefaults) +} + +try { + fs.accessSync(configLocal) + config = merge(config, JSON.parse(fs.readFileSync(configLocal, 'utf8'))) +} catch (error) { + console.log('Could not read ' + configLocal) +} + + +iterate(config) + +module.exports = config \ No newline at end of file -- GitLab