WIPP
This commit is contained in:
parent
2b81dcd0ed
commit
89b7c95c8a
2 changed files with 54 additions and 7 deletions
44
bin/apply-defaults.js
Normal file
44
bin/apply-defaults.js
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
const _ = require('lodash/fp')
|
||||||
|
|
||||||
|
// const db = require('../lib/db')
|
||||||
|
const settingsLoader = require('../lib/settings-loader')
|
||||||
|
const configManager = require('../lib/config-manager')
|
||||||
|
const schema = require('../lamassu-schema.json')
|
||||||
|
const newFields = []
|
||||||
|
|
||||||
|
settingsLoader.loadConfig()
|
||||||
|
.then(config => {
|
||||||
|
schema.groups.forEach(group => {
|
||||||
|
return group.fields.forEach(fieldCode => {
|
||||||
|
const field = schema.fields.find(r => r.code === fieldCode)
|
||||||
|
if (!field) throw new Error('No such field: ' + fieldCode)
|
||||||
|
if (_.isNil(field.default)) return
|
||||||
|
if (group.cryptoScope === 'specific' || group.machineScope === 'specific') return
|
||||||
|
|
||||||
|
const existing = configManager.scopedValue('global', 'global', fieldCode, config)
|
||||||
|
if (existing) return
|
||||||
|
|
||||||
|
return newFields.push({
|
||||||
|
fieldLocator: {
|
||||||
|
fieldScope: {
|
||||||
|
crypto: 'global',
|
||||||
|
machine: 'global'
|
||||||
|
},
|
||||||
|
code: fieldCode,
|
||||||
|
fieldType: field.fieldType,
|
||||||
|
fieldClass: field.fieldClass
|
||||||
|
},
|
||||||
|
fieldValue: {
|
||||||
|
fieldType: field.fieldType,
|
||||||
|
value: field.default
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
return settingsLoader.save(config.concat(newFields))
|
||||||
|
})
|
||||||
|
.then(() => pp(newFields))
|
||||||
|
.then(() => process.exit(0))
|
||||||
|
|
||||||
|
function pp (o) { console.log(require('util').inspect(o, {depth: null, colors: true})) }
|
||||||
|
|
@ -5,14 +5,11 @@ const db = require('./db')
|
||||||
let settingsCache
|
let settingsCache
|
||||||
|
|
||||||
function load () {
|
function load () {
|
||||||
return Promise.all([
|
return Promise.all([loadConfig(), loadAccounts()])
|
||||||
db.one('select data from user_config where type=$1', 'config'),
|
.then(function ([config, accounts]) {
|
||||||
loadAccounts()
|
|
||||||
])
|
|
||||||
.then(function ([data, accounts]) {
|
|
||||||
settingsCache = {
|
settingsCache = {
|
||||||
config: data.data.config,
|
config,
|
||||||
accounts: accounts
|
accounts
|
||||||
}
|
}
|
||||||
|
|
||||||
return settingsCache
|
return settingsCache
|
||||||
|
|
@ -23,6 +20,11 @@ function load () {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadConfig () {
|
||||||
|
return db.oneOrNone('select data from user_config where type=$1', 'config')
|
||||||
|
.then(row => row ? row.data.config : [])
|
||||||
|
}
|
||||||
|
|
||||||
function loadAccounts () {
|
function loadAccounts () {
|
||||||
const toFields = fieldArr => R.fromPairs(R.map(r => [r.code, r.value], fieldArr))
|
const toFields = fieldArr => R.fromPairs(R.map(r => [r.code, r.value], fieldArr))
|
||||||
const toPairs = r => [r.code, toFields(r.fields)]
|
const toPairs = r => [r.code, toFields(r.fields)]
|
||||||
|
|
@ -40,5 +42,6 @@ function settings () {
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
settings,
|
settings,
|
||||||
|
loadConfig,
|
||||||
load
|
load
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue