Skip to content

Commit 04944c1

Browse files
committed
Modified subcommand to give precedence on alias's documentation reference, if present
1 parent c093527 commit 04944c1

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/dev/jbang/cli/Info.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import static dev.jbang.Settings.CP_SEPARATOR;
44

5-
import java.awt.*;
5+
import java.awt.Desktop;
66
import java.io.IOException;
77
import java.lang.reflect.Field;
88
import java.net.URI;
@@ -24,6 +24,9 @@
2424
import dev.jbang.devkitman.Jdk;
2525
import dev.jbang.devkitman.JdkManager;
2626
import dev.jbang.source.*;
27+
import dev.jbang.source.resolvers.AliasResourceResolver;
28+
import dev.jbang.source.resolvers.LazyResourceResolver;
29+
import dev.jbang.source.resolvers.SiblingResourceResolver;
2730
import dev.jbang.util.JavaUtil;
2831
import dev.jbang.util.ModuleUtil;
2932

@@ -182,10 +185,25 @@ private void init(BuildContext ctx) {
182185
}
183186
gav = prj.getGav().orElse(null);
184187
description = prj.getDescription().orElse(null);
185-
docs = prj.getDocs().orElse(null);
188+
initDocsReference(prj);
189+
186190
module = prj.getModuleName().orElse(null);
187191
}
188192

193+
private void initDocsReference(Project prj) {
194+
docs = prj.getDocs().orElse(null);
195+
196+
// check if an alias exists and override docs directive with alias's resolved ResourceRef
197+
ResourceRef resourceRef = prj.getResourceRef();
198+
if (resourceRef instanceof AliasResourceResolver.AliasedResourceRef) {
199+
AliasResourceResolver.AliasedResourceRef aliasedResourceRef = (AliasResourceResolver.AliasedResourceRef) resourceRef;
200+
ResourceResolver resolver1 = new SiblingResourceResolver(resourceRef, ResourceResolver.forResources());
201+
if (aliasedResourceRef.getAlias().docs != null) {
202+
docs = LazyResourceResolver.lazy(resolver1).resolve(aliasedResourceRef.getAlias().docs);
203+
}
204+
}
205+
}
206+
189207
private void init(SourceSet ss) {
190208
List<String> deps = ss.getDependencies();
191209
if (!deps.isEmpty()) {

0 commit comments

Comments
 (0)