Files
mykb/bin/genSecret.js
2018-11-24 00:23:39 -06:00

36 lines
934 B
JavaScript
Executable File

#! /usr/bin/env node
const path = require('path')
const crypto = require('crypto')
const DB = require('../src/server/util/db')
const isDev = process.env.NODE_ENV !== 'production'
const configFile = (isDev ? 'default' : 'production') + '.json'
const configPath = path.join(__dirname, '../config', configFile)
const config = new DB(configPath)
config.loading
.then(() => {
const { secret } = config.data
if (!isDev && secret && !process.argv.some(arg => arg === '-f')) {
return console.log(
'Secret already exists, not updating. Use -f to force update'
)
}
config
.setData({
...config.data,
secret: crypto.randomBytes(256).toString('hex'),
})
.then(() => {
console.log(
`Authentication secret successfully updated in ${configPath}`
)
})
.catch(err => console.error(err))
})
.catch(err => {
console.error(err)
})