From 99f330284f03f4f0db384141f2931a277afcbb96 Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Mon, 26 Jul 2021 09:47:24 +0200 Subject: [PATCH] fix(hcl2cdk): handle all global variables --- packages/@cdktf/hcl2cdk/lib/expressions.ts | 6 +++++- .../hcl2cdk/test/__snapshots__/hcl2cdk.test.ts.snap | 8 ++++++++ packages/@cdktf/hcl2cdk/test/hcl2cdk.test.ts | 9 +++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/@cdktf/hcl2cdk/lib/expressions.ts b/packages/@cdktf/hcl2cdk/lib/expressions.ts index d4adea9a4c..8f62387150 100644 --- a/packages/@cdktf/hcl2cdk/lib/expressions.ts +++ b/packages/@cdktf/hcl2cdk/lib/expressions.ts @@ -89,7 +89,11 @@ export function extractReferencesFromExpression( spot.endsWith("...") || // spread (likely in for loop) spot.startsWith("count.") || // count variable spot.startsWith("each.") || // each variable - spot.startsWith("path.module") // path variable + // https://www.terraform.io/docs/language/expressions/references.html#filesystem-and-workspace-info + spot.startsWith("path.module") || + spot.startsWith("path.root") || + spot.startsWith("path.cwd") || + spot.startsWith("terraform.workspace") ) { return carry; } diff --git a/packages/@cdktf/hcl2cdk/test/__snapshots__/hcl2cdk.test.ts.snap b/packages/@cdktf/hcl2cdk/test/__snapshots__/hcl2cdk.test.ts.snap index 05e2aa9458..be833650c5 100644 --- a/packages/@cdktf/hcl2cdk/test/__snapshots__/hcl2cdk.test.ts.snap +++ b/packages/@cdktf/hcl2cdk/test/__snapshots__/hcl2cdk.test.ts.snap @@ -759,6 +759,14 @@ new auth0.Auth0Provider(this, \\"auth0\\", { " `; +exports[`convert required namespaced provider configuration 2`] = ` +"new TerraformHclModule.TerraformHclModule(this, \\"example\\", { + namePrefix: \\"app-\${terraform.workspace}\\", + source: \\"./my-module\\", +}); +" +`; + exports[`convert resource references configuration 1`] = ` "import * as aws from \\"./.gen/providers/aws\\"; const awsKmsKeyExamplekms = new aws.KmsKey(this, \\"examplekms\\", { diff --git a/packages/@cdktf/hcl2cdk/test/hcl2cdk.test.ts b/packages/@cdktf/hcl2cdk/test/hcl2cdk.test.ts index ef0ace820e..f03938030f 100644 --- a/packages/@cdktf/hcl2cdk/test/hcl2cdk.test.ts +++ b/packages/@cdktf/hcl2cdk/test/hcl2cdk.test.ts @@ -808,6 +808,15 @@ describe("convert", () => { } `, ], + [ + "required namespaced provider", + ` + module "example" { + source = "./my-module" + name_prefix = "app-\${terraform.workspace}" + } + `, + ], ])("%s configuration", async (_name, hcl) => { const { all } = await convert(hcl, { language: "typescript",