in src/main/java/CodeBuilder.java [953:984]
public static Collection<EnvironmentVariable> mapEnvVariables(String envVars, EnvironmentVariableType envVarType) throws InvalidInputException {
Collection<EnvironmentVariable> result = new HashSet<EnvironmentVariable>();
if(envVars == null || envVars.isEmpty()) {
return result;
}
envVars = envVars.replaceAll("\\}\\s*,\\s*\\{", "},{");
envVars = envVars.replaceAll("\\[\\s*\\{", "[{");
envVars = envVars.replaceAll("\\}\\s*\\]", "}]");
envVars = envVars.replaceAll("[\\n|\\t]", "").trim();
if(envVars.length() < 4 || envVars.charAt(0) != '[' || envVars.charAt(envVars.length()-1) != ']' ||
envVars.charAt(1) != '{' || envVars.charAt(envVars.length()-2) != '}') {
throw new InvalidInputException(envVariableSyntaxError);
} else {
envVars = envVars.substring(2, envVars.length()-2);
}
int numCommas = envVars.replaceAll("[^,]", "").length();
if(numCommas == 0) {
throw new InvalidInputException(envVariableSyntaxError);
}
//single environment variable case vs multiple
if(numCommas == 1) {
result.add(deserializeCodeBuildEnvVar(envVars, envVarType));
} else {
String[] evs = envVars.split("\\},\\{");
for(int i = 0; i < evs.length; i++) {
result.add(deserializeCodeBuildEnvVar(evs[i], envVarType));
}
}
return result;
}