UNPKG

1.51 kBJavaScriptView Raw
1const fs = require('fs'),
2 logger = require('./logger');
3
4const MODULES_DIR = 'modules';
5
6const loadSettingsFile = path => {
7 if (fs.existsSync(path)) {
8 return JSON.parse(fs.readFileSync(path));
9 } else {
10 return {};
11 }
12};
13
14const loadSettingsFileForModule = module => {
15 return loadSettingsFile(`${MODULES_DIR}/${module}/template-values.json`);
16};
17
18const existingSettings = () => {
19 return loadSettingsFile(process.env.CONFIG_FILE_PATH);
20};
21
22const 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
34const 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
41const 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
52module.exports = { fetchSettings, listEnvironments, loadSettingsFile, loadSettingsFileForModule };