You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by na...@apache.org on 2023/01/14 14:12:42 UTC
[hop] 01/01: Add option -v --version to CLI #2153 - hop-conf - hop-run - hop-search - hop-import
This is an automated email from the ASF dual-hosted git repository.
nadment pushed a commit to branch 2153
in repository https://gitbox.apache.org/repos/asf/hop.git
commit 5dc0b9dbfb2e77a7067ca449e5cdb3b517a4227e
Author: Nicolas Adment <39...@users.noreply.github.com>
AuthorDate: Sat Jan 14 15:12:04 2023 +0100
Add option -v --version to CLI #2153
- hop-conf
- hop-run
- hop-search
- hop-import
---
.../main/java/org/apache/hop/config/HopConfig.java | 8 +++++++
.../org/apache/hop/core/HopVersionProvider.java | 26 ++++++++++++++++++++++
.../main/java/org/apache/hop/imp/HopImport.java | 8 +++++++
.../src/main/java/org/apache/hop/run/HopRun.java | 10 ++++++++-
.../main/java/org/apache/hop/search/HopSearch.java | 8 +++++++
5 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/engine/src/main/java/org/apache/hop/config/HopConfig.java b/engine/src/main/java/org/apache/hop/config/HopConfig.java
index 984e179dae..108421f341 100644
--- a/engine/src/main/java/org/apache/hop/config/HopConfig.java
+++ b/engine/src/main/java/org/apache/hop/config/HopConfig.java
@@ -20,6 +20,7 @@ package org.apache.hop.config;
import org.apache.commons.lang.StringUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.HopVersionProvider;
import org.apache.hop.core.config.plugin.ConfigPlugin;
import org.apache.hop.core.config.plugin.ConfigPluginType;
import org.apache.hop.core.config.plugin.IConfigOptions;
@@ -38,6 +39,7 @@ import org.apache.hop.metadata.api.IHopMetadataProvider;
import org.apache.hop.metadata.serializer.json.JsonMetadataProvider;
import org.apache.hop.metadata.serializer.multi.MultiMetadataProvider;
import picocli.CommandLine;
+import picocli.CommandLine.Command;
import picocli.CommandLine.ExecutionException;
import picocli.CommandLine.Option;
import picocli.CommandLine.ParameterException;
@@ -46,6 +48,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+@Command(versionProvider = HopVersionProvider.class)
public class HopConfig implements Runnable, IHasHopMetadataProvider {
@Option(
@@ -54,6 +57,11 @@ public class HopConfig implements Runnable, IHasHopMetadataProvider {
description = "Displays this help message and quits.")
private boolean helpRequested;
+ @Option(names = {"-v", "--version"},
+ versionHelp = true,
+ description = "Print version information and exit")
+ private boolean versionRequested;
+
@Option(
names = {"-l", "--level"},
description = "The debug level, one of NOTHING, ERROR, MINIMAL, BASIC, DETAILED, DEBUG, ROWLEVEL")
diff --git a/engine/src/main/java/org/apache/hop/core/HopVersionProvider.java b/engine/src/main/java/org/apache/hop/core/HopVersionProvider.java
new file mode 100644
index 0000000000..88ad99c855
--- /dev/null
+++ b/engine/src/main/java/org/apache/hop/core/HopVersionProvider.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hop.core;
+
+import picocli.CommandLine.IVersionProvider;
+
+public class HopVersionProvider implements IVersionProvider {
+ private static final String[] VERSION = {HopEnvironment.class.getPackage().getImplementationVersion()};
+ public String[] getVersion() {
+ return VERSION;
+ }
+}
\ No newline at end of file
diff --git a/engine/src/main/java/org/apache/hop/imp/HopImport.java b/engine/src/main/java/org/apache/hop/imp/HopImport.java
index b0a3aeed0b..450d0d4fb8 100644
--- a/engine/src/main/java/org/apache/hop/imp/HopImport.java
+++ b/engine/src/main/java/org/apache/hop/imp/HopImport.java
@@ -20,6 +20,7 @@ package org.apache.hop.imp;
import org.apache.commons.lang.StringUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.HopVersionProvider;
import org.apache.hop.core.IProgressMonitor;
import org.apache.hop.core.LogProgressMonitor;
import org.apache.hop.core.config.plugin.ConfigPlugin;
@@ -37,6 +38,7 @@ import org.apache.hop.core.variables.Variables;
import org.apache.hop.metadata.api.IHasHopMetadataProvider;
import org.apache.hop.metadata.serializer.multi.MultiMetadataProvider;
import picocli.CommandLine;
+import picocli.CommandLine.Command;
import picocli.CommandLine.ExecutionException;
import picocli.CommandLine.Option;
import picocli.CommandLine.ParameterException;
@@ -45,6 +47,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
+@Command(versionProvider = HopVersionProvider.class)
public class HopImport implements Runnable, IHasHopMetadataProvider {
@Option(
@@ -112,6 +115,11 @@ public class HopImport implements Runnable, IHasHopMetadataProvider {
description = "Displays this help message and quits.")
private boolean helpRequested;
+ @Option(names = {"-v", "--version"},
+ versionHelp = true,
+ description = "Print version information and exit")
+ private boolean versionRequested;
+
private IVariables variables;
private CommandLine cmd;
private ILogChannel log;
diff --git a/engine/src/main/java/org/apache/hop/run/HopRun.java b/engine/src/main/java/org/apache/hop/run/HopRun.java
index c2e11c7c21..dc9161c5dc 100644
--- a/engine/src/main/java/org/apache/hop/run/HopRun.java
+++ b/engine/src/main/java/org/apache/hop/run/HopRun.java
@@ -22,6 +22,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.hop.IExecutionConfiguration;
import org.apache.hop.core.Const;
import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.HopVersionProvider;
import org.apache.hop.core.config.plugin.ConfigPlugin;
import org.apache.hop.core.config.plugin.ConfigPluginType;
import org.apache.hop.core.config.plugin.IConfigOptions;
@@ -59,6 +60,7 @@ import org.apache.hop.workflow.config.WorkflowRunConfiguration;
import org.apache.hop.workflow.engine.IWorkflowEngine;
import org.apache.hop.workflow.engine.WorkflowEngineFactory;
import picocli.CommandLine;
+import picocli.CommandLine.Command;
import picocli.CommandLine.ExecutionException;
import picocli.CommandLine.Option;
import picocli.CommandLine.ParameterException;
@@ -68,8 +70,9 @@ import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
+@Command(versionProvider = HopVersionProvider.class)
public class HopRun implements Runnable, IHasHopMetadataProvider {
-
+
@Option(
names = {"-f", "--file"},
description = "The filename of the workflow or pipeline to run")
@@ -86,6 +89,11 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
description = "Displays this help message and quits.")
private boolean helpRequested;
+ @Option(names = {"-v", "--version"},
+ versionHelp = true,
+ description = "Print version information and exit")
+ private boolean versionRequested;
+
@Option(
names = {"-p", "--parameters"},
description = "A comma separated list of PARAMETER=VALUE pairs",
diff --git a/engine/src/main/java/org/apache/hop/search/HopSearch.java b/engine/src/main/java/org/apache/hop/search/HopSearch.java
index e1f920e267..0a4d6d9ad7 100644
--- a/engine/src/main/java/org/apache/hop/search/HopSearch.java
+++ b/engine/src/main/java/org/apache/hop/search/HopSearch.java
@@ -20,6 +20,7 @@ package org.apache.hop.search;
import org.apache.commons.lang.StringUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.HopVersionProvider;
import org.apache.hop.core.config.plugin.ConfigPlugin;
import org.apache.hop.core.config.plugin.ConfigPluginType;
import org.apache.hop.core.config.plugin.IConfigOptions;
@@ -44,6 +45,7 @@ import org.apache.hop.metadata.api.IHopMetadataProvider;
import org.apache.hop.metadata.serializer.json.JsonMetadataProvider;
import org.apache.hop.metadata.serializer.multi.MultiMetadataProvider;
import picocli.CommandLine;
+import picocli.CommandLine.Command;
import picocli.CommandLine.ExecutionException;
import picocli.CommandLine.Option;
import picocli.CommandLine.ParameterException;
@@ -55,6 +57,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+@Command(versionProvider = HopVersionProvider.class)
public class HopSearch implements Runnable, IHasHopMetadataProvider {
@Option(
@@ -63,6 +66,11 @@ public class HopSearch implements Runnable, IHasHopMetadataProvider {
description = "Displays this help message and quits.")
private boolean helpRequested;
+ @Option(names = {"-v", "--version"},
+ versionHelp = true,
+ description = "Print version information and exit")
+ private boolean versionRequested;
+
@Parameters(description = "The string to search for")
private String searchString;