This commit is contained in:
2016-06-20 07:06:15 +02:00
parent de6045842d
commit 612f8307b8
8 changed files with 84 additions and 14 deletions

View File

@ -1,16 +1,17 @@
import * as plugins from "./qenv.plugins";
export class qenv {
envVarsRequired:string[];
envVarsAvailable:string[];
envVarsMissing:string[];
constructor(basePathArg = "./qenv.yml",envYmlPathArg){
this.envVarsRequired = getEnvVarsRequired(basePathArg);
this.envVarsAvailable;
requiredEnvVars:string[];
availableEnvVars:string[];
missingEnvVars:string[];
constructor(basePathArg = process.cwd(),envYmlPathArg){
this.requiredEnvVars = getRequiredEnvVars(basePathArg);
this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars,envYmlPathArg);
this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars,this.availableEnvVars);
}
};
let getEnvVarsRequired = (pathArg:string):string[] => {
let getRequiredEnvVars = (pathArg:string):string[] => {
let result:string[] = [];
let qenvFilePath = plugins.path.join(pathArg,"qenv.yml");
let qenvFile = plugins.smartfile.local.toObjectSync(qenvFilePath);
@ -20,15 +21,27 @@ let getEnvVarsRequired = (pathArg:string):string[] => {
return result;
}
let getEnvVarsAvailable = (requiredEnvVarsArg:string[]):string[] => {
let getAvailableEnvVars = (requiredEnvVarsArg:string[],envYmlPathArg:string):string[] => {
let result = [];
let envYml;
try {
envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg);
}
catch(err){
envYml = {};
}
for(let keyArg in requiredEnvVarsArg){
let envVar = requiredEnvVarsArg[keyArg];
let envVar:string = requiredEnvVarsArg[keyArg];
if(process.env[envVar]){
result.push(envVar);
} else {
} else if(envYml.hasOwnPropery(envVar)){
process.env[envVar] = envYml.envVar;
result.push(envVar);
}
}
return result;
}
let getMissingEnvVars = (requiredEnvVarsArray:string[],availableEnvVarsArray:string[]) => {
return plugins.lodash.difference(requiredEnvVarsArray,availableEnvVarsArray);
}

View File

@ -1,4 +1,5 @@
import "typings-global";
export import beautylog = require("beautylog");
export let lodash = require("lodash");
export import path = require("path");
export import smartfile = require("smartfile");