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;