lamassu-server/packages/server/tools/migrate-env.js
siiky e10493abc6 Merge branch 'dev' into feat/lam-1291/stress-testing
* 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
  ...
2025-05-20 11:59:44 +01:00

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