Skip to content

Commit a4d51ae

Browse files
cli: add print-outside-deps command (#1396)
1 parent fc70f6d commit a4d51ae

4 files changed

Lines changed: 31 additions & 2 deletions

File tree

znai-cli/src/main/java/org/testingisdocumenting/znai/cli/ZnaiCliApp.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ public static void start(ZnaiCliConfig cliConfig) {
6969

7070
public static void main(String[] args) {
7171
ConsoleOutputs.add(new AnsiConsoleOutput());
72-
start(new ZnaiCliConfig(System::exit, args));
72+
ZnaiCliConfig cliConfig = new ZnaiCliConfig(System::exit, args);
73+
if (cliConfig.isPrintOutsideDepsMode()) {
74+
ConsoleOutputs.clear();
75+
}
76+
start(cliConfig);
7377
}
7478

7579
private String getDocId() {
@@ -101,6 +105,8 @@ private void start() {
101105
serve();
102106
} else if (config.isExportMode()) {
103107
export();
108+
} else if (config.isPrintOutsideDepsMode()) {
109+
printOutsideDeps();
104110
} else if (config.isCustomCommand()) {
105111
config.getSpecifiedCustomCommand().handle(
106112
new CliCommandConfig(config.getDocId(), config.getSourceRoot(), config.getDeployRoot(), config.getActor()));
@@ -151,6 +157,15 @@ public void export() {
151157
FileUtils.writeTextContent(lookupPath, artifactsDirName);
152158
}
153159

160+
public void printOutsideDeps() {
161+
Path sourceRoot = config.getSourceRoot();
162+
163+
webSite.getOutsideDocsRequestedResources().values().stream()
164+
.map(fullPath -> sourceRoot.relativize(fullPath).toString())
165+
.sorted()
166+
.forEach(System.out::println);
167+
}
168+
154169
private void exportLlmTxtIfNeeded() {
155170
Path llmTxtOutputPath = config.getLlmTxtOutputPath();
156171
if (llmTxtOutputPath == null) {
@@ -205,7 +220,7 @@ private WebSite generateDocs(Path sourceRoot) {
205220
withValidateExternalLinks(config.isValidateExternalLinks()).
206221
withLlmUrlPrefix(llmUrlPrefix == null ? "" : llmUrlPrefix);
207222

208-
return config.isExportMode() ?
223+
return config.isExportMode() || config.isPrintOutsideDepsMode() ?
209224
webSiteCfg.parseOnly():
210225
webSiteCfg.deployTo(deployPath);
211226
}

znai-cli/src/main/java/org/testingisdocumenting/znai/cli/ZnaiCliConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public enum Command {
4747
SERVE("serve", "Serve static documentation"),
4848
NEW("new", "Create new documentation with sample content and basic setup"),
4949
EXPORT("export", "Export documentation source including required artifacts"),
50+
PRINT_OUTSIDE_DEPS("print-outside-deps", "Print files outside docs root referenced by documentation"),
5051
BUILD("build", "Build documentation (default)");
5152

5253
private final String name;
@@ -161,6 +162,8 @@ public boolean hasMultipleArgs() {
161162
exportOptions.add(OptionKey.EXPORT);
162163
COMMAND_OPTIONS.put(Command.EXPORT, exportOptions);
163164

165+
COMMAND_OPTIONS.put(Command.PRINT_OUTSIDE_DEPS, commonOptions);
166+
164167
COMMAND_OPTIONS.put(Command.NEW, commonOptions);
165168
}
166169

@@ -197,6 +200,7 @@ public enum Mode {
197200
PREVIEW("preview"),
198201
SERVE("serve"),
199202
EXPORT("export"),
203+
PRINT_OUTSIDE_DEPS("print-outside-deps"),
200204
SCAFFOLD("scaffold new"),
201205
CUSTOM("custom");
202206

@@ -278,6 +282,10 @@ public boolean isExportMode() {
278282
return mode == Mode.EXPORT;
279283
}
280284

285+
public boolean isPrintOutsideDepsMode() {
286+
return mode == Mode.PRINT_OUTSIDE_DEPS;
287+
}
288+
281289
public boolean isCustomCommand() {
282290
return !specifiedCustomCommands.isEmpty();
283291
}
@@ -461,6 +469,7 @@ private Mode determineMode(CommandLine commandLine) {
461469
case SERVE -> Mode.SERVE;
462470
case NEW -> Mode.SCAFFOLD;
463471
case EXPORT -> Mode.EXPORT;
472+
case PRINT_OUTSIDE_DEPS -> Mode.PRINT_OUTSIDE_DEPS;
464473
case BUILD -> Mode.BUILD;
465474
};
466475
}

znai-console/src/main/java/org/testingisdocumenting/znai/console/ConsoleOutputs.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,8 @@ public static void add(ConsoleOutput consoleOutput) {
3939
public static void remove(ConsoleOutput consoleOutput) {
4040
outputs.remove(consoleOutput);
4141
}
42+
43+
public static void clear() {
44+
outputs.clear();
45+
}
4246
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Add: `print-outside-deps` command to print file dependencies outside of documentation dir

0 commit comments

Comments
 (0)