diff --git a/cli-console/src/main/java/org/aya/cli/console/MainArgs.java b/cli-console/src/main/java/org/aya/cli/console/MainArgs.java index aa8540ce30..88c97b98aa 100644 --- a/cli-console/src/main/java/org/aya/cli/console/MainArgs.java +++ b/cli-console/src/main/java/org/aya/cli/console/MainArgs.java @@ -83,7 +83,7 @@ public static class Action { public PrettyStage prettyStage; @Option(names = {"--pretty-format"}, description = "Pretty print format." + CANDIDATES, defaultValue = "markdown") public PrettyFormat prettyFormat; - @Option(names = {"--pretty-dir"}, description = "Specify output directory of pretty printing.", defaultValue = ".") + @Option(names = {"--pretty-dir"}, description = "Specify output directory of pretty printing.") public String prettyDir; @Option(names = {"--pretty-color"}, description = "The color theme of pretty printing." + CANDIDATES, defaultValue = "emacs") public PredefinedStyle prettyColor; diff --git a/cli-impl/src/main/java/org/aya/cli/library/LibraryCompiler.java b/cli-impl/src/main/java/org/aya/cli/library/LibraryCompiler.java index 5bb8d225ad..31ce957bce 100644 --- a/cli-impl/src/main/java/org/aya/cli/library/LibraryCompiler.java +++ b/cli-impl/src/main/java/org/aya/cli/library/LibraryCompiler.java @@ -148,20 +148,26 @@ private void resolveImportsIfNeeded(@NotNull LibrarySource source) throws IOExce public int start() throws IOException { if (flags.modulePaths().isNotEmpty()) reporter.reportString( - "Warning: command-line specified module path is ignored when compiling libraries."); - if (flags.prettyInfo() != null) reporter.reportString( - "Warning: command-line specified pretty info is ignored when compiling libraries."); + "Warning: command-line specified module path (--module-path) is ignored when compiling libraries."); + if (flags.outputFile() != null) reporter.reportString( + "Warning: command-line specified output file (-o, --output) is ignored when compiling libraries."); return CompilerUtil.catching(reporter, flags, this::make); } private void pretty(ImmutableSeq modified) throws IOException { var cmdPretty = flags.prettyInfo(); - if (cmdPretty == null || cmdPretty.prettyStage() != CliEnums.PrettyStage.literate) return; + if (cmdPretty == null) return; + if (cmdPretty.prettyStage() != CliEnums.PrettyStage.literate) { + reporter.reportString("Warning: only 'literate' pretty stage is supported when compiling libraries."); + return; + } // prepare literate output path reportNest("[Info] Generating literate output"); var litConfig = owner.underlyingLibrary().literateConfig(); - var outputDir = Files.createDirectories(litConfig.outputPath()); + var outputDir = cmdPretty.prettyDir() != null + ? Files.createDirectories(Path.of(cmdPretty.prettyDir())) + : Files.createDirectories(litConfig.outputPath()); // If the library specifies no literate options, use the ones from the command line. var litPretty = litConfig.pretty();