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 <[email protected]> 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;
