lamassu-server/bin/lamassu-apply-defaults
2016-12-09 20:02:05 +02:00

51 lines
1.4 KiB
JavaScript
Executable file

#!/usr/bin/env node
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.loadLatest()
.then(settings => {
const config = settings.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 (!_.isNil(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: config.concat(newFields)})
})
.then(() => {
console.log('Success.')
process.exit(0)
})
.catch(err => {
console.error(err)
process.exit(1)
})