From cd54dc69a1195b7adbf8a7db7bca374492e3d85f Mon Sep 17 00:00:00 2001 From: Mikalai Kukhta Date: Wed, 7 Aug 2024 14:41:39 +0200 Subject: [PATCH] added support for envFile --- .../javacs/ktda/adapter/KotlinDebugAdapter.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt b/adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt index 3013204..892a92e 100644 --- a/adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt +++ b/adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt @@ -102,9 +102,24 @@ class KotlinDebugAdapter( var cwd = (args["cwd"] as? String).let { if(it.isNullOrBlank()) projectRoot else Paths.get(it) } - // Cast from com.google.gson.internal.LinkedTreeMap - @Suppress("UNCHECKED_CAST") - val env = args["env"] as? Map ?: mapOf() + val env = mutableMapOf().apply { + (args["envFile"] as? String)?.let { Paths.get(it) }?.let { envFile -> + envFile.toFile().readLines() + .map { it.trim() } + .filter { it.isNotBlank() && !it.startsWith("#") } + .forEach { + val (key, value) = it.split("=", limit = 2) + set(key, value) + } + } + + // apply 'env' from launch request overriding contents of 'envFile' + args.get("env")?.let { env -> + // Cast from com.google.gson.internal.LinkedTreeMap + @Suppress("UNCHECKED_CAST") + putAll(env as Map) + } + }.toMap() setupCommonInitializationParams(args)