commit dbc50c207e902de55da826eb81c60d233457bc7f
parent d6550a22c870c312b8d57cedf1688ae373e9dadf
Author: Antoine A <>
Date: Sat, 6 Dec 2025 17:10:28 +0100
common: fix inline-matching
Diffstat:
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/libeufin-common/src/main/kotlin/TalerConfig.kt b/libeufin-common/src/main/kotlin/TalerConfig.kt
@@ -22,10 +22,7 @@ package tech.libeufin.common
import kotlinx.serialization.json.Json
import org.slf4j.Logger
import org.slf4j.LoggerFactory
-import java.nio.file.AccessDeniedException
-import java.nio.file.NoSuchFileException
-import java.nio.file.NotDirectoryException
-import java.nio.file.Path
+import java.nio.file.*
import java.time.*
import java.time.format.*
import java.time.temporal.ChronoUnit
@@ -221,10 +218,11 @@ private class ConfigLoader(
"inline" -> loadFromFile(source.resolveSibling(directiveArg), recursionDepth, lineNum)
"inline-matching" -> {
try {
- source.parent.useDirectoryEntries(directiveArg) {
- for (entry in it) {
- loadFromFile(entry, recursionDepth, lineNum)
- }
+ val pathMatcher = FileSystems.getDefault().getPathMatcher("glob:$directiveArg")
+ val entries = source.parent.walk()
+ .filter { pathMatcher.matches(source.parent.relativize(it)) }
+ for (entry in entries) {
+ loadFromFile(entry, recursionDepth, lineNum)
}
} catch (e: Exception) {
when (e) {