enola-dev / enola

Enola šŸ•µšŸ¾ā€ā™€ļø Holmes was an SRE.
https://docs.enola.dev/
Apache License 2.0
13 stars 5 forks source link

NoSuchFileException for Globs with {} at the end #756

Open vorburger opened 3 days ago

vorburger commented 3 days ago

With #730 fixed, this works:

./enola -vvv docgen --load=file:"docs/models/**.{ttl,owl,rdf}" --output=file://"$PWD"/docs/models/

but this does not:

$ ./enola -vvvvv validate --load="file:models/{enola.dev,schema.org,purl.org,www.w3.org}/**.ttl"
2024-06-28 02:31:46 SEVERE dev.enola.cli.Lifecycle start Hi! šŸ‘‹ I'm https://Enola.dev 796a3b28. šŸ‘½ Resistance šŸ‘¾ is futile. We are ONE. What's your goal, today?

java.io.UncheckedIOException: Failed to process 'globbed' IRI: file:models/{enola.dev,schema.org,purl.org,www.w3.org}/**.ttl
        at dev.enola.common.io.resource.stream.FileGlobResourceProvider.get(FileGlobResourceProvider.java:78)
        at dev.enola.common.io.resource.stream.GlobResourceProviders.get(GlobResourceProviders.java:37)
        at dev.enola.cli.CommandWithModel.run(CommandWithModel.java:99)
        at dev.enola.common.function.CheckedRunnable.call(CheckedRunnable.java:25)
        at dev.enola.common.function.CheckedRunnable.call(CheckedRunnable.java:22)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
        at dev.enola.cli.LoggingMixin.executionStrategy(LoggingMixin.java:68)
        at picocli.CommandLine.execute(CommandLine.java:2170)
        at dev.enola.cli.CLI.execute(CLI.java:78)
        at dev.enola.cli.EnolaCLI.main(EnolaCLI.java:70)
Caused by: java.nio.file.NoSuchFileException: models/{enola.dev,schema.org,purl.org,www.w3.org}
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:171)
        at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
        at java.base/java.nio.file.Files.readAttributes(Files.java:1853)
        at java.base/java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:226)
        at java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:277)
        at java.base/java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:323)
        at java.base/java.nio.file.FileTreeIterator.<init>(FileTreeIterator.java:71)
        at java.base/java.nio.file.Files.walk(Files.java:3898)
        at java.base/java.nio.file.Files.walk(Files.java:3953)
        at dev.enola.common.io.resource.stream.FileGlobPathWalker.walk(FileGlobPathWalker.java:48)
        at dev.enola.common.io.resource.stream.FileGlobResourceProvider.get(FileGlobResourceProvider.java:68)
        ... 15 more

Note how in models/{enola.dev,schema.org,purl.org,www.w3.org} the trailing **.ttl got lost...