This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.20.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.20.x by this push:
new 10fab48c8ab CAMEL-19360: camel-jbang - Export a set of files
10fab48c8ab is described below
commit 10fab48c8abe18454dfd24a1fbf053171996da39
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 18ef501b3fa..a395ba62a6f 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 f99d213ad00..3840a433f74 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 3a49af210da..2a67878ffc6 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 0c37359f05e..11681bbb3ce 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 c6539f6babc..49681d81fef 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;