From a875a4f6c5a59da4dfb409eeb0fbaa047d6c7cec Mon Sep 17 00:00:00 2001 From: Divyam Mehta Date: Mon, 6 Jan 2025 13:56:35 -0800 Subject: [PATCH 1/2] enable multi var parsing + tests --- .../software/amazon/smithy/build/model/SmithyBuildUtils.java | 2 +- .../amazon/smithy/build/model/SmithyBuildConfigTest.java | 2 +- .../resources/software/amazon/smithy/build/config-with-env.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/smithy-build/src/main/java/software/amazon/smithy/build/model/SmithyBuildUtils.java b/smithy-build/src/main/java/software/amazon/smithy/build/model/SmithyBuildUtils.java index 4f3c5b356df..bf398495aa3 100644 --- a/smithy-build/src/main/java/software/amazon/smithy/build/model/SmithyBuildUtils.java +++ b/smithy-build/src/main/java/software/amazon/smithy/build/model/SmithyBuildUtils.java @@ -69,7 +69,7 @@ static ObjectNode expandNode(Node node) { */ private static final class VariableExpander extends NodeVisitor.Default { - private static final Pattern INLINE = Pattern.compile("(?:^|[^\\\\])\\$\\{(.+)}"); + private static final Pattern INLINE = Pattern.compile("(?:^|[^\\\\])\\$\\{([^}]+)}"); private static final Pattern ESCAPED_INLINE = Pattern.compile("\\\\\\$"); @Override diff --git a/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java b/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java index d7dfb2925ac..1e1b913be8d 100644 --- a/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java +++ b/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java @@ -123,7 +123,7 @@ public void expandsEnvironmentVariables() { // Did the array and string values in it expand? assertThat(transform.getArgs(), equalTo(Node.objectNode() - .withMember("tags", Node.fromStrings("Hi", "compoundTagFromEnv", "${BAZ}")))); + .withMember("tags", Node.fromStrings("Hi", "compoundTagFromEnv", "HiAndTagFromEnv", "${BAZ}")))); } @Test diff --git a/smithy-build/src/test/resources/software/amazon/smithy/build/config-with-env.json b/smithy-build/src/test/resources/software/amazon/smithy/build/config-with-env.json index 2921d0022d8..05d0f51dcc0 100644 --- a/smithy-build/src/test/resources/software/amazon/smithy/build/config-with-env.json +++ b/smithy-build/src/test/resources/software/amazon/smithy/build/config-with-env.json @@ -9,6 +9,7 @@ "tags": [ "${FOO}", "compound${BAR}", + "${FOO}And${BAR}", "\\${BAZ}" ] } From 20f704395fb9ac65cd42f5734fc9eb2416d81e66 Mon Sep 17 00:00:00 2001 From: Divyam Mehta Date: Mon, 6 Jan 2025 14:14:44 -0800 Subject: [PATCH 2/2] formatting violation fix --- .../amazon/smithy/build/model/SmithyBuildConfigTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java b/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java index 1e1b913be8d..b0b2ee523fb 100644 --- a/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java +++ b/smithy-build/src/test/java/software/amazon/smithy/build/model/SmithyBuildConfigTest.java @@ -123,7 +123,8 @@ public void expandsEnvironmentVariables() { // Did the array and string values in it expand? assertThat(transform.getArgs(), equalTo(Node.objectNode() - .withMember("tags", Node.fromStrings("Hi", "compoundTagFromEnv", "HiAndTagFromEnv", "${BAZ}")))); + .withMember("tags", + Node.fromStrings("Hi", "compoundTagFromEnv", "HiAndTagFromEnv", "${BAZ}")))); } @Test