* dev: (85 commits) chore: console.log debug leftovers fix: third level navigation links fix: show subheader on refresh fix: machines/:id routing fix: customer route chore: update wallet nodes feat: shorten long addresses in funding page feat: shorten long addresses refactor: support copied text different from presented text chore: udpate react, downshift and routing refactor: use Wizard component on first route fix: autocomplete component rendering feat: skip2fa option on .env fix: drop contraint before dropping index chore: stop using alias imports fix: re-instate urlResolver chore: server code formatting chore: reformat code chore: adding eslint and prettier config chore: typo ...
35 lines
1,016 B
JavaScript
35 lines
1,016 B
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
const _ = require('lodash/fp')
|
|
const setEnvVariable = require('./set-env-var')
|
|
|
|
const ENV_PATH =
|
|
process.env.NODE_ENV === 'production'
|
|
? path.resolve('/etc', 'lamassu', '.env')
|
|
: path.resolve(__dirname, '../.env')
|
|
const BACKUP_TIMESTAMP = Date.now()
|
|
const BACKUP_PATH = `${ENV_PATH}-${BACKUP_TIMESTAMP}`
|
|
|
|
const migrateEnv = newVars => {
|
|
try {
|
|
fs.copyFileSync(ENV_PATH, BACKUP_PATH)
|
|
_.forEach(it => {
|
|
setEnvVariable(it[0], it[1], { ENV_PATH })
|
|
}, newVars)
|
|
fs.unlinkSync(BACKUP_PATH)
|
|
console.log('Environment migration successful')
|
|
} catch (e) {
|
|
// Rollback the migration and restore the backup file
|
|
if (fs.existsSync(BACKUP_PATH)) {
|
|
console.log('Rolling back the environment migration...')
|
|
fs.copyFileSync(BACKUP_PATH, ENV_PATH)
|
|
fs.unlinkSync(BACKUP_PATH)
|
|
console.log('Rollback finished')
|
|
}
|
|
console.log('Environment migration failed')
|
|
throw e
|
|
}
|
|
}
|
|
|
|
module.exports = migrateEnv
|