1 | const fs = require('fs'),
|
2 | logger = require('./logger');
|
3 |
|
4 | const MODULES_DIR = 'modules';
|
5 |
|
6 | const loadSettingsFile = path => {
|
7 | if (fs.existsSync(path)) {
|
8 | return JSON.parse(fs.readFileSync(path));
|
9 | } else {
|
10 | return {};
|
11 | }
|
12 | };
|
13 |
|
14 | const loadSettingsFileForModule = module => {
|
15 | return loadSettingsFile(`${MODULES_DIR}/${module}/template-values.json`);
|
16 | };
|
17 |
|
18 | const existingSettings = () => {
|
19 | return loadSettingsFile(process.env.CONFIG_FILE_PATH);
|
20 | };
|
21 |
|
22 | const fetchSettings = (environment, program) => {
|
23 | const settings = settingsFromEnv() || existingSettings()[environment];
|
24 | if (settings) return settings;
|
25 |
|
26 | if (environment){
|
27 | logger.Warn(`No settings for ${environment} environment, please see marketplace-kit env add`);
|
28 | } else {
|
29 | logger.Warn('No environment specified, please pass environment for a command `marketplace-kit <command> [environment]`');
|
30 | }
|
31 | program.help();
|
32 | };
|
33 |
|
34 | const settingsFromEnv = () => {
|
35 | const env = process.env;
|
36 | if (env.MPKIT_URL && env.MPKIT_TOKEN && env.MPKIT_EMAIL){
|
37 | return { url: env.MPKIT_URL, email: env.MPKIT_EMAIL, token: env.MPKIT_TOKEN };
|
38 | }
|
39 | };
|
40 |
|
41 | const listEnvironments = () => {
|
42 | const settings = Object(existingSettings());
|
43 | const list = Object.keys(settings);
|
44 |
|
45 | if (list.length) {
|
46 | return list.map(key => `${key} \t${settings[key].url}`);
|
47 | } else {
|
48 | logger.Error('No environments registered yet, please see marketplace-kit env add');
|
49 | }
|
50 | };
|
51 |
|
52 | module.exports = { fetchSettings, listEnvironments, loadSettingsFile, loadSettingsFileForModule };
|