32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
|
const fs = require('fs');
|
||
|
const tomlJS = require('toml-js');
|
||
|
const toml = require('toml');
|
||
|
const { merge } = require('lodash')
|
||
|
|
||
|
const main = () => {
|
||
|
const overrideConfigString = fs.readFileSync('environments/watcher-config.toml', 'utf-8');
|
||
|
const configString = fs.readFileSync('environments/local.toml', 'utf-8');
|
||
|
const overrideConfig = toml.parse(overrideConfigString)
|
||
|
const config = toml.parse(configString)
|
||
|
|
||
|
// Merge configs
|
||
|
const updatedConfig = merge(config, overrideConfig);
|
||
|
|
||
|
// Form dbConnectionString for jobQueue DB
|
||
|
const parts = config.jobQueue.dbConnectionString.split("://");
|
||
|
const credsAndDB = parts[1].split("@");
|
||
|
const creds = credsAndDB[0].split(":");
|
||
|
creds[0] = overrideConfig.database.username;
|
||
|
creds[1] = overrideConfig.database.password;
|
||
|
credsAndDB[0] = creds.join(":");
|
||
|
const dbName = credsAndDB[1].split("/")[1]
|
||
|
credsAndDB[1] = [overrideConfig.database.host, dbName].join("/");
|
||
|
parts[1] = credsAndDB.join("@");
|
||
|
|
||
|
updatedConfig.jobQueue.dbConnectionString = parts.join("://");
|
||
|
|
||
|
fs.writeFileSync('environments/local.toml', tomlJS.dump(updatedConfig), 'utf-8');
|
||
|
}
|
||
|
|
||
|
main();
|