fix: production env file path
This commit is contained in:
parent
f4d6b5e454
commit
b2da82453a
19 changed files with 27 additions and 72 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
var pgp = require('pg-promise')()
|
var pgp = require('pg-promise')()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const setEnvVariable = require('../tools/set-env-var')
|
const setEnvVariable = require('../tools/set-env-var')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
const hdkey = require('ethereumjs-wallet/hdkey')
|
const hdkey = require('ethereumjs-wallet/hdkey')
|
||||||
const hkdf = require('futoin-hkdf')
|
const hkdf = require('futoin-hkdf')
|
||||||
const db = require('../lib/db')
|
const db = require('../lib/db')
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ const FileStore = require('migrate/lib/file-store')
|
||||||
|
|
||||||
const _ = require('lodash/fp')
|
const _ = require('lodash/fp')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const db = require('../lib/db')
|
const db = require('../lib/db')
|
||||||
const migrate = require('../lib/migrate')
|
const migrate = require('../lib/migrate')
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const MNEMONIC_PATH = process.env.MNEMONIC_PATH
|
const MNEMONIC_PATH = process.env.MNEMONIC_PATH
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
const setEnvVariable = require('../tools/set-env-var')
|
const setEnvVariable = require('../tools/set-env-var')
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
if (!process.env.OFAC_SOURCES_NAMES && !process.env.OFAC_SOURCES_URLS) {
|
if (!process.env.OFAC_SOURCES_NAMES && !process.env.OFAC_SOURCES_URLS) {
|
||||||
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ const fs = require('fs')
|
||||||
const hkdf = require('futoin-hkdf')
|
const hkdf = require('futoin-hkdf')
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const mnemonicHelpers = require('../lib/mnemonic-helpers')
|
const mnemonicHelpers = require('../lib/mnemonic-helpers')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
const { asyncLocalStorage, defaultStore } = require('../lib/async-storage')
|
const { asyncLocalStorage, defaultStore } = require('../lib/async-storage')
|
||||||
const userManagement = require('../lib/new-admin/graphql/modules/userManagement')
|
const userManagement = require('../lib/new-admin/graphql/modules/userManagement')
|
||||||
const authErrors = require('../lib/new-admin/graphql/errors/authentication')
|
const authErrors = require('../lib/new-admin/graphql/errors/authentication')
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ const mnemonicHelpers = require('../lib/mnemonic-helpers')
|
||||||
const setEnvVariable = require('../tools/set-env-var')
|
const setEnvVariable = require('../tools/set-env-var')
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
if (!process.env.MNEMONIC_PATH && process.env.SEED_PATH) {
|
if (!process.env.MNEMONIC_PATH && process.env.SEED_PATH) {
|
||||||
const seed = fs.readFileSync(process.env.SEED_PATH, 'utf8').trim()
|
const seed = fs.readFileSync(process.env.SEED_PATH, 'utf8').trim()
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
const pgp = require('pg-promise')()
|
const pgp = require('pg-promise')()
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const { PSQL_URL } = require('../lib/constants')
|
const { PSQL_URL } = require('../lib/constants')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const login = require('../lib/admin/login')
|
const login = require('../lib/admin/login')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ const os = require('os')
|
||||||
const bip39 = require('bip39')
|
const bip39 = require('bip39')
|
||||||
const setEnvVariable = require('../tools/set-env-var')
|
const setEnvVariable = require('../tools/set-env-var')
|
||||||
|
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
if (process.env.MNEMONIC_PATH && !process.env.SEED_PATH) {
|
if (process.env.MNEMONIC_PATH && !process.env.SEED_PATH) {
|
||||||
const mnemonic = fs.readFileSync(process.env.MNEMONIC_PATH, 'utf8')
|
const mnemonic = fs.readFileSync(process.env.MNEMONIC_PATH, 'utf8')
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ const http = require('http')
|
||||||
const https = require('https')
|
const https = require('https')
|
||||||
const argv = require('minimist')(process.argv.slice(2))
|
const argv = require('minimist')(process.argv.slice(2))
|
||||||
|
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const { asyncLocalStorage, defaultStore } = require('./async-storage')
|
const { asyncLocalStorage, defaultStore } = require('./async-storage')
|
||||||
const routes = require('./routes')
|
const routes = require('./routes')
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
const _ = require('lodash/fp')
|
const _ = require('lodash/fp')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
|
const os = require('os')
|
||||||
const makeDir = require('make-dir')
|
const makeDir = require('make-dir')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
const cp = require('child_process')
|
||||||
|
|
||||||
const load = require('./options-loader')
|
const load = require('./options-loader')
|
||||||
const logger = require('./logger')
|
const logger = require('./logger')
|
||||||
|
|
@ -53,61 +55,13 @@ function updateOptionBasepath (result, optionName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function run () {
|
async function run () {
|
||||||
// load defaults
|
|
||||||
const defaultOpts = require('../lamassu-default')
|
|
||||||
|
|
||||||
// load current opts
|
// load current opts
|
||||||
const options = load()
|
const options = load().opts
|
||||||
const currentOpts = options.opts
|
const shouldMigrate = !fs.existsSync(process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env'))
|
||||||
|
|
||||||
// check if there are new options to add
|
// write the resulting .env
|
||||||
let result = _.mergeAll([defaultOpts, currentOpts])
|
|
||||||
|
|
||||||
// get all the options
|
|
||||||
// that ends with "Path" suffix
|
|
||||||
logger.info(`Detected lamassu-server basepath: ${currentBasePath}`)
|
|
||||||
_.each(_.wrap(updateOptionBasepath, result),
|
|
||||||
[
|
|
||||||
'seedPath',
|
|
||||||
'caPath',
|
|
||||||
'certPath',
|
|
||||||
'keyPath',
|
|
||||||
'lamassuCaPath'
|
|
||||||
])
|
|
||||||
|
|
||||||
const shouldMigrate = !_.isEqual(result, currentOpts) || _.has('lamassuServerPath', result)
|
|
||||||
|
|
||||||
// write the resulting lamassu.json
|
|
||||||
if (shouldMigrate) {
|
if (shouldMigrate) {
|
||||||
// remove old lamassuServerPath config
|
const postgresPw = new RegExp(':(\\w*)@').exec(options.postgresql)[1]
|
||||||
result = _.omit('lamassuServerPath', result)
|
cp.spawnSync('node', ['tools/build-prod-env.js', '--db-password', postgresPw, '--hostname', options.hostname], { cwd: currentBasePath, encoding: 'utf-8' })
|
||||||
|
|
||||||
// find keys for which values
|
|
||||||
// have been changed
|
|
||||||
const differentValue = _.wrap(_.filter, key => !_.isEqual(result[key], currentOpts[key]))
|
|
||||||
|
|
||||||
// output affected options
|
|
||||||
const newOpts = _.pick(_.union(
|
|
||||||
// find change keys
|
|
||||||
differentValue(_.keys(result)),
|
|
||||||
// find new opts
|
|
||||||
_.difference(_.keys(result), _.keys(currentOpts))
|
|
||||||
), result)
|
|
||||||
logger.info('Updating options', newOpts)
|
|
||||||
|
|
||||||
// store new lamassu.json file
|
|
||||||
fs.writeFileSync(options.path, JSON.stringify(result, null, ' '))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// get all the new options
|
|
||||||
// that ends with "Dir" suffix
|
|
||||||
mapKeyValuesDeep((v, k) => {
|
|
||||||
if (_.endsWith('Dir', k)) {
|
|
||||||
const path = _.attempt(() => makeDir.sync(v))
|
|
||||||
|
|
||||||
if (_.isError(path)) {
|
|
||||||
logger.error(`while creating folder ${v}`, path)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, result)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ const { graphqlUploadExpress } = require('graphql-upload')
|
||||||
const { ApolloServer } = require('apollo-server-express')
|
const { ApolloServer } = require('apollo-server-express')
|
||||||
const _ = require('lodash/fp')
|
const _ = require('lodash/fp')
|
||||||
|
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const { asyncLocalStorage, defaultStore } = require('../async-storage')
|
const { asyncLocalStorage, defaultStore } = require('../async-storage')
|
||||||
const logger = require('../logger')
|
const logger = require('../logger')
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ const express = require('express')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { ApolloServer } = require('apollo-server-express')
|
const { ApolloServer } = require('apollo-server-express')
|
||||||
|
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const { typeDefs, resolvers } = require('./graphql/schema')
|
const { typeDefs, resolvers } = require('./graphql/schema')
|
||||||
const logger = require('../logger')
|
const logger = require('../logger')
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ const os = require('os')
|
||||||
const argv = require('minimist')(process.argv.slice(2))
|
const argv = require('minimist')(process.argv.slice(2))
|
||||||
const _ = require('lodash/fp')
|
const _ = require('lodash/fp')
|
||||||
|
|
||||||
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
|
require('dotenv').config({ path: process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env') })
|
||||||
|
|
||||||
const DATABASE = process.env.LAMASSU_DB ?? 'PROD'
|
const DATABASE = process.env.LAMASSU_DB ?? 'PROD'
|
||||||
const dbMapping = psqlConf => ({
|
const dbMapping = psqlConf => ({
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ if (!_.isEqual(_.intersection(_.keys(argv), requiredParams), requiredParams)) {
|
||||||
process.exit(2)
|
process.exit(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), path.resolve(__dirname, '../.env'))
|
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env'))
|
||||||
|
|
||||||
setEnvVariable('POSTGRES_USER', 'lamassu_pg')
|
setEnvVariable('POSTGRES_USER', 'lamassu_pg')
|
||||||
setEnvVariable('POSTGRES_PASSWORD', `${argv['db-password']}`)
|
setEnvVariable('POSTGRES_PASSWORD', `${argv['db-password']}`)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ const os = require('os')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
|
||||||
const setEnvVariable = (key, value) => {
|
const setEnvVariable = (key, value) => {
|
||||||
const ENV_VARIABLES = fs.readFileSync(path.resolve(__dirname, '../.env'), 'utf-8').split(os.EOL)
|
const ENV_PATH = process.env.NODE_ENV === 'production' ? path.resolve(os.homedir(), '.lamassu', '.env') : path.resolve(__dirname, '../.env')
|
||||||
|
const ENV_VARIABLES = fs.readFileSync(ENV_PATH, 'utf-8').split(os.EOL)
|
||||||
const target = ENV_VARIABLES.indexOf(ENV_VARIABLES.find(line => line.match(new RegExp(`^${key}=`))))
|
const target = ENV_VARIABLES.indexOf(ENV_VARIABLES.find(line => line.match(new RegExp(`^${key}=`))))
|
||||||
|
|
||||||
if (target < 0) {
|
if (target < 0) {
|
||||||
|
|
@ -18,7 +19,7 @@ const setEnvVariable = (key, value) => {
|
||||||
ENV_VARIABLES.splice(target, 1, `${key}=${value}`)
|
ENV_VARIABLES.splice(target, 1, `${key}=${value}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.writeFileSync(path.resolve(__dirname, '../.env'), ENV_VARIABLES.join(os.EOL))
|
fs.writeFileSync(ENV_PATH, ENV_VARIABLES.join(os.EOL))
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = setEnvVariable
|
module.exports = setEnvVariable
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue