UNPKG

1.26 kBJavaScriptView Raw
1'use strict';
2
3const path = require('path');
4const fs = require('fs-extra');
5
6const ENV_PARAMS = ['OW_APIHOST', 'OW_AUTH', 'OW_NAMESPACE', 'OW_APIGW_ACCESS_TOKEN'];
7
8function getWskPropsFile() {
9 const Home = process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'];
10 return path.format({ dir: Home, base: '.wskprops' });
11}
12
13function readWskPropsFile() {
14 const wskFilePath = getWskPropsFile();
15
16 return new Promise(resolve => {
17 fs.readFile(wskFilePath, 'utf8', (err, data) => {
18 resolve(err ? '' : data);
19 });
20 });
21}
22
23function getWskProps() {
24 return readWskPropsFile().then(data => {
25 if (!data) return {};
26
27 const wskProps = data.trim().split('\n')
28 .map(line => line.split('='))
29 .reduce((params, keyValue) => {
30 params[keyValue[0].toLowerCase()] = keyValue[1]; // eslint-disable-line no-param-reassign
31 return params;
32 }, {});
33
34 return wskProps;
35 });
36}
37
38function getWskEnvProps() {
39 const envProps = {};
40 ENV_PARAMS.forEach((envName) => {
41 if (process.env[envName]) envProps[envName.slice(3).toLowerCase()] = process.env[envName];
42 });
43 return envProps;
44}
45
46module.exports = {
47 getWskProps() {
48 return getWskProps()
49 .then(props => Object.assign(props, getWskEnvProps()));
50 },
51};