Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
3577fa22e1 | |||
f5275adfbd | |||
31bf1b27a4 | |||
a77def5844 | |||
2357699f3e | |||
01f5784488 | |||
80f35c39aa | |||
87f55773bd | |||
1a25341232 | |||
ccd41d86bf |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/qenv",
|
||||
"version": "3.0.3",
|
||||
"version": "3.1.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/qenv",
|
||||
"version": "3.0.3",
|
||||
"version": "3.1.0",
|
||||
"private": false,
|
||||
"description": "easy promised environments",
|
||||
"main": "dist/index.js",
|
||||
|
@ -17,10 +17,12 @@ tap.test('should create a new class', async () => {
|
||||
|
||||
tap.test('key1 should be not be overwritten since it is already present', async () => {
|
||||
expect(process.env.key1).to.equal('original');
|
||||
expect(qenvTestObject.getEnvVarOnDemand('key1')).to.equal('original');
|
||||
});
|
||||
|
||||
tap.test('key2 should be read from Yml', async () => {
|
||||
expect(process.env.key2).to.equal('fromYml');
|
||||
expect(qenvTestObject.getEnvVarOnDemand('key2')).to.equal('fromYml');
|
||||
});
|
||||
|
||||
tap.test('keyValueObjectArray should hold all retrieved values', async () => {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import * as plugins from './qenv.plugins';
|
||||
plugins.smartlog.defaultLogger.enableConsole();
|
||||
|
||||
export interface IKeyValueObject {
|
||||
key: string;
|
||||
@ -74,7 +75,6 @@ export class Qenv {
|
||||
try {
|
||||
envYml = plugins.smartfile.fs.toObjectSync(this.envFilePathAbsolute);
|
||||
} catch (err) {
|
||||
console.log("env file couldn't be found at " + this.envFilePathAbsolute);
|
||||
envYml = {};
|
||||
}
|
||||
let envVar: string;
|
||||
@ -98,7 +98,7 @@ export class Qenv {
|
||||
if (
|
||||
plugins.smartfile.fs.isDirectory('/run') &&
|
||||
plugins.smartfile.fs.isDirectory('/run/secrets') &&
|
||||
plugins.smartfile.fs.fileExists(`/run/secrets/${requiredEnvVar}`)
|
||||
plugins.smartfile.fs.fileExistsSync(`/run/secrets/${requiredEnvVar}`)
|
||||
) {
|
||||
dockerSecret = plugins.smartfile.fs.toStringSync(`/run/secrets/${requiredEnvVar}`);
|
||||
}
|
||||
@ -106,12 +106,16 @@ export class Qenv {
|
||||
// docker secret.json
|
||||
if (
|
||||
plugins.smartfile.fs.isDirectory('/run') &&
|
||||
plugins.smartfile.fs.isDirectory('/run/secrets') &&
|
||||
plugins.smartfile.fs.fileExists(`/run/secrets/secret.json`)
|
||||
plugins.smartfile.fs.isDirectory('/run/secrets')
|
||||
) {
|
||||
const availableSecrets = plugins.smartfile.fs.listAllItemsSync('/run/secrets');
|
||||
for (const secret of availableSecrets) {
|
||||
if (secret.includes('secret.json') && !dockerSecret) {
|
||||
const secretObject = plugins.smartfile.fs.toObjectSync('/run/secrets/secret.json');
|
||||
dockerSecret = secretObject[requiredEnvVar];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// warn if there is more than one candidate
|
||||
let candidatesCounter = 0;
|
||||
@ -129,12 +133,16 @@ export class Qenv {
|
||||
|
||||
let chosenVar: string = null;
|
||||
if (envVar) {
|
||||
this.logger.log('ok', `found ${requiredEnvVar} as environment variable`);
|
||||
chosenVar = envVar;
|
||||
} else if (envFileVar) {
|
||||
this.logger.log('ok', `found ${requiredEnvVar} as env.yml variable`);
|
||||
chosenVar = envFileVar;
|
||||
} else if (dockerSecret) {
|
||||
this.logger.log('ok', `found ${requiredEnvVar} as docker secret`);
|
||||
chosenVar = dockerSecret;
|
||||
} else if (dockerSecretJson) {
|
||||
this.logger.log('ok', `found ${requiredEnvVar} as docker secret.json`);
|
||||
chosenVar = dockerSecretJson;
|
||||
}
|
||||
return chosenVar;
|
||||
|
Reference in New Issue
Block a user