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
|
||||
|
||||
function load () {
|
||||
return Promise.all([
|
||||
db.one('select data from user_config where type=$1', 'config'),
|
||||
loadAccounts()
|
||||
])
|
||||
.then(function ([data, accounts]) {
|
||||
return Promise.all([loadConfig(), loadAccounts()])
|
||||
.then(function ([config, accounts]) {
|
||||
settingsCache = {
|
||||
config: data.data.config,
|
||||
accounts: accounts
|
||||
config,
|
||||
accounts
|
||||
}
|
||||
|
||||
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 () {
|
||||
const toFields = fieldArr => R.fromPairs(R.map(r => [r.code, r.value], fieldArr))
|
||||
const toPairs = r => [r.code, toFields(r.fields)]
|
||||
|
|
@ -40,5 +42,6 @@ function settings () {
|
|||
|
||||
module.exports = {
|
||||
settings,
|
||||
loadConfig,
|
||||
load
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue