Skip to content

Commit 45d5814

Browse files
authored
Merge pull request #3 from Optum/uppercase-arguments
Support uppercased arguments
2 parents 2b07d47 + fa7e3be commit 45d5814

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

envvars-lib/src/main/java/com/optum/envvars/set/EnvVarsStaticSets.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ private Map<String, String> processParameterizedDefineSetReferences(String setKe
9191
String arg = rawarg.trim();
9292
boolean foundOneOfThisArg = false;
9393
final String argHolder = "{{$" + (whichArg) + "}}";
94+
final String uppercaseArgHolder = "{{^$" + (whichArg) + "}}";
9495

9596
// Replace keys
9697
for(int i=0; i<count; i++) {
@@ -99,6 +100,10 @@ private Map<String, String> processParameterizedDefineSetReferences(String setKe
99100
foundOneOfThisArg = true;
100101
String newValue = key.replace(argHolder, arg);
101102
keys.set(i, newValue);
103+
} else if (key.contains(uppercaseArgHolder)) {
104+
foundOneOfThisArg = true;
105+
String newValue = key.replace(uppercaseArgHolder, arg.toUpperCase());
106+
keys.set(i, newValue);
102107
}
103108
}
104109

@@ -109,6 +114,10 @@ private Map<String, String> processParameterizedDefineSetReferences(String setKe
109114
foundOneOfThisArg = true;
110115
String newValue = value.replace(argHolder, arg);
111116
values.set(i, newValue);
117+
} else if (value.contains(uppercaseArgHolder)) {
118+
foundOneOfThisArg = true;
119+
String newValue = value.replace(uppercaseArgHolder, arg.toUpperCase());
120+
values.set(i, newValue);
112121
}
113122
}
114123

@@ -208,12 +217,17 @@ private List<String> processParameterizedInjectSetReferences(String key, String[
208217
String arg = rawarg.trim();
209218
boolean foundOneOfThisArg = false;
210219
final String argHolder = "{{$" + (whichArg) + "}}";
220+
final String uppercaseArgHolder = "{{^$" + (whichArg) + "}}";
211221
for(int i=0; i<values.size(); i++) {
212222
String value = values.get(i);
213223
if (value.contains(argHolder)) {
214224
foundOneOfThisArg = true;
215225
String newValue = value.replace(argHolder, arg);
216226
values.set(i, newValue);
227+
} else if (value.contains(uppercaseArgHolder)) {
228+
foundOneOfThisArg = true;
229+
String newValue = value.replace(uppercaseArgHolder, arg.toUpperCase());
230+
values.set(i, newValue);
217231
}
218232
}
219233
if (!foundOneOfThisArg) {

envvars-lib/src/test/groovy/com/optum/envvars/EnvVarEngineSpec.groovy

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,20 @@ class EnvVarEngineSpec extends Specification {
832832
results.get("MYDATABASE_Main") == "https://Main:3306"
833833
}
834834
835+
final Map uppercaseDefineSetsParam = ["Database": ['MYDATABASE_{{^$1}}': 'https://{{^$1}}:3306']]
836+
837+
def "Parameterized Uppercase Declares"() {
838+
when:
839+
EnvVarsStaticSets envVarsStaticSets = new EnvVarsStaticSets(Collections.emptyMap(), uppercaseDefineSetsParam)
840+
EnvVarsEngine envVarsEngine = new EnvVarsEngine(envVarsStaticSets)
841+
EnvVarsRuntimeSelectors.Node node = new EnvVarsRuntimeSelectors.Node("environments", true, "dev", true, EnvVarsMapDataEngine.DefaultProcessingPolicy.SUPPORTED, StandardNodeSectionsPolicy.NOSECRETS)
842+
final EnvVarsMapDataEngine nestedMap = new EnvVarsMapDataEngine(null, envVarsStaticSets, declareParam)
843+
envVarsEngine.add(nestedMap.get(new EnvVarsRuntimeSelectors(Collections.singletonList(node))))
844+
Map<String, String> results = envVarsEngine.generateBridgeData()
845+
then:
846+
results.get("MYDATABASE_MAIN") == "https://MAIN:3306"
847+
}
848+
835849
final Map declareCascade = new JsonSlurper().parseText(
836850
"""{
837851
"environments": {

0 commit comments

Comments
 (0)