This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4ebd67ae36ed798c1da00f5d54e1b2739dd0b1a6 Author: Claus Ibsen <[email protected]> AuthorDate: Wed May 17 08:59:42 2023 +0200 CAMEL-19360: camel-jbang - Export a set of files --- .../camel/dsl/jbang/core/commands/Export.java | 1 + .../dsl/jbang/core/commands/ExportBaseCommand.java | 21 ++++++++++++++++++++- .../dsl/jbang/core/commands/ExportCamelMain.java | 4 ++-- .../dsl/jbang/core/commands/ExportQuarkus.java | 2 +- .../dsl/jbang/core/commands/ExportSpringBoot.java | 2 +- .../apache/camel/dsl/jbang/core/commands/Init.java | 2 +- 6 files changed, 26 insertions(+), 6 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java index c2f2aac058c..ea0e8253ce6 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java @@ -91,6 +91,7 @@ public class Export extends ExportBaseCommand { protected Integer export(ExportBaseCommand cmd) throws Exception { // copy properties from this to cmd + cmd.files = this.files; cmd.profile = this.profile; cmd.repos = this.repos; cmd.dependencies = this.dependencies; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java index 4f34e942b67..b5a1dc8f25f 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java @@ -22,7 +22,9 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.StandardCopyOption; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -33,6 +35,7 @@ import java.util.Map; import java.util.Optional; import java.util.Properties; import java.util.Set; +import java.util.Stack; import java.util.TreeSet; import java.util.function.Function; import java.util.jar.JarEntry; @@ -67,6 +70,12 @@ abstract class ExportBaseCommand extends CamelCommand { private static final Pattern PACKAGE_PATTERN = Pattern.compile( "^\\s*package\\s+([a-zA-Z][.\\w]*)\\s*;.*$", Pattern.MULTILINE); + @CommandLine.Parameters(description = "The Camel file(s) to export. If no files is specified then what was last run will be exported.", + arity = "0..9", paramLabel = "<files>", parameterConsumer = FilesConsumer.class) + Path[] filePaths; // Defined only for file path completion; the field never used + + List<String> files = new ArrayList<>(); + @CommandLine.Option(names = { "--profile" }, scope = CommandLine.ScopeType.INHERIT, defaultValue = "application", description = "Profile to use, which refers to loading properties file with the given profile name. By default application.properties is loaded.") protected String profile; @@ -137,7 +146,7 @@ abstract class ExportBaseCommand extends CamelCommand { protected String buildTool; @CommandLine.Option(names = { - "-dir", + "--dir", "--directory" }, description = "Directory where the project will be exported", defaultValue = ".") protected String exportDir; @@ -244,6 +253,7 @@ abstract class ExportBaseCommand extends CamelCommand { run.profile = profile; run.localKameletDir = localKameletDir; run.dependencies = dependencies; + run.files = files; Integer code = run.runSilent(); return code; } @@ -781,4 +791,13 @@ abstract class ExportBaseCommand extends CamelCommand { return null; } } + + static class FilesConsumer extends ParameterConsumer<Export> { + @Override + protected void doConsumeParameters(Stack<String> args, Export cmd) { + String arg = args.pop(); + cmd.files.add(arg); + } + } + } diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java index 06204ebd8ce..bbd3d9f6fea 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java @@ -58,9 +58,9 @@ class ExportCamelMain extends Export { // the settings file has information what to export File settings = new File(Run.WORK_DIR + "/" + Run.RUN_SETTINGS_FILE); - if (fresh || !settings.exists()) { + if (fresh || files != null || !settings.exists()) { // allow to automatic build - if (!quiet) { + if (!quiet && fresh) { System.out.println("Generating fresh run data"); } int silent = runSilently(); diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java index 51c9098d50c..3939eabe67e 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java @@ -61,7 +61,7 @@ class ExportQuarkus extends Export { // the settings file has information what to export File settings = new File(Run.WORK_DIR + "/" + Run.RUN_SETTINGS_FILE); - if (fresh || !settings.exists()) { + if (fresh || files != null || !settings.exists()) { // allow to automatic build if (!quiet) { System.out.println("Generating fresh run data"); diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java index 6bdfaf2fcb1..8b4e95b9ef5 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java @@ -64,7 +64,7 @@ class ExportSpringBoot extends Export { // the settings file has information what to export File settings = new File(Run.WORK_DIR + "/" + Run.RUN_SETTINGS_FILE); - if (fresh || !settings.exists()) { + if (fresh || files != null || !settings.exists()) { // allow to automatic build if (!quiet) { System.out.println("Generating fresh run data"); diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java index 67c7d0fb0a2..9e829bce0a5 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Init.java @@ -63,7 +63,7 @@ public class Init extends CamelCommand { private String kameletsVersion; @Option(names = { - "-dir", + "--dir", "--directory" }, description = "Directory where the project will be saved", defaultValue = ".") private String directory;
