You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/05/25 13:26:05 UTC

groovy git commit: GROOVY-8592: Migrate command line tools to picocli version of CliBuilder

Repository: groovy
Updated Branches:
  refs/heads/master 3d50ca0e5 -> 603e5f63d


GROOVY-8592: Migrate command line tools to picocli version of CliBuilder


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/603e5f63
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/603e5f63
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/603e5f63

Branch: refs/heads/master
Commit: 603e5f63d91488082581b5d1f508d555c143470b
Parents: 3d50ca0
Author: Paul King <pa...@asert.com.au>
Authored: Fri May 25 23:25:38 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Fri May 25 23:26:01 2018 +1000

----------------------------------------------------------------------
 gradle/assemble.gradle                                |  3 ++-
 .../main/groovy/groovy/cli/picocli/CliBuilder.groovy  |  2 +-
 subprojects/groovy-console/build.gradle               |  2 +-
 .../src/main/groovy/groovy/ui/Console.groovy          | 14 +++++++-------
 .../src/main/resources/groovy/ui/Console.properties   |  2 ++
 subprojects/groovy-groovydoc/build.gradle             |  2 +-
 .../org/codehaus/groovy/tools/groovydoc/Main.groovy   |  7 ++++---
 .../codehaus/groovy/tools/groovydoc/Main.properties   |  1 +
 .../org/codehaus/groovy/tools/shell/Main.groovy       |  6 +++---
 .../org/codehaus/groovy/tools/shell/Main.properties   |  1 +
 10 files changed, 23 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/gradle/assemble.gradle
----------------------------------------------------------------------
diff --git a/gradle/assemble.gradle b/gradle/assemble.gradle
index d4844bd..bd67e48 100644
--- a/gradle/assemble.gradle
+++ b/gradle/assemble.gradle
@@ -215,7 +215,8 @@ allprojects {
                     'org/codehaus/groovy/tools/shell/util/HelpFormatter*.class',
                     'groovy/cli/commons/CliBuilder*.class',
                     'groovy/cli/commons/OptionAccessor*.class',
-                    'groovy/cli/picocli/CliBuilder*.class'
+                    'groovy/cli/picocli/CliBuilder*.class',
+                    'groovy/cli/picocli/OptionAccessor*.class'
             ]
             patterns = [
                     'antlr.**'                 : 'groovyjarjarantlr.@1', // antlr2

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
index e0377b3..d18a8bd 100644
--- a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
+++ b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
@@ -608,7 +608,7 @@ class CliBuilder {
      * Make options accessible from command line args with parser.
      * Returns null on bad command lines after displaying usage message.
      */
-    groovy.cli.picocli.OptionAccessor parse(args) {
+    OptionAccessor parse(args) {
         CommandLine commandLine = createCommandLine()
         try {
             def accessor = new OptionAccessor(commandLine.parseArgs(args as String[]))

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-console/build.gradle
----------------------------------------------------------------------
diff --git a/subprojects/groovy-console/build.gradle b/subprojects/groovy-console/build.gradle
index dc488bb..c55970d 100644
--- a/subprojects/groovy-console/build.gradle
+++ b/subprojects/groovy-console/build.gradle
@@ -20,7 +20,7 @@ evaluationDependsOn(':groovy-swing')
 
 dependencies {
     compile rootProject
-    compile project(':groovy-cli-commons')
+    compile project(':groovy-cli-picocli')
     compile project(':groovy-swing')
     compile project(':groovy-templates')
     testCompile project(':groovy-test')

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-console/src/main/groovy/groovy/ui/Console.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/Console.groovy b/subprojects/groovy-console/src/main/groovy/groovy/ui/Console.groovy
index cee5943..a7ff356 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/Console.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/Console.groovy
@@ -18,6 +18,8 @@
  */
 package groovy.ui
 
+import groovy.cli.picocli.CliBuilder
+import groovy.cli.picocli.OptionAccessor
 import groovy.inspect.swingui.AstBrowser
 import groovy.inspect.swingui.ObjectBrowser
 import groovy.swing.SwingBuilder
@@ -191,16 +193,16 @@ class Console implements CaretListener, HyperlinkListener, ComponentListener, Fo
     ConsolePreferences consolePreferences
 
     static void main(args) {
-        CliBuilder cli = new CliBuilder(usage: 'groovyConsole [options] [filename]', stopAtNonOption: false)
         MessageSource messages = new MessageSource(Console)
+        CliBuilder cli = new CliBuilder(usage: 'groovyConsole [options] [filename]', stopAtNonOption: false,
+                header: messages['cli.option.header'])
         cli.with {
-            classpath(messages['cli.option.classpath.description'])
-            cp(longOpt: 'classpath', messages['cli.option.cp.description'])
+            _(names: ['-cp', '-classpath', '--classpath'], messages['cli.option.classpath.description'])
             h(longOpt: 'help', messages['cli.option.help.description'])
             V(longOpt: 'version', messages['cli.option.version.description'])
             pa(longOpt: 'parameters', messages['cli.option.parameters.description'])
             i(longOpt: 'indy', messages['cli.option.indy.description'])
-            D(longOpt: 'define', args: 2, argName: 'name=value', valueSeparator: '=', messages['cli.option.define.description'])
+            D(longOpt: 'define', type: Map, argName: 'name=value', messages['cli.option.define.description'])
             _(longOpt: 'configscript', args: 1, messages['cli.option.configscript.description'])
         }
         OptionAccessor options = cli.parse(args)
@@ -221,9 +223,7 @@ class Console implements CaretListener, HyperlinkListener, ComponentListener, Fo
         }
 
         if (options.hasOption('D')) {
-            options.getOptionProperties('D')?.each { k, v ->
-                System.setProperty(k, v)
-            }
+            options.Ds.each { k, v -> System.setProperty(k, v) }
         }
 
         // full stack trace should not be logged to the output window - GROOVY-4663

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-console/src/main/resources/groovy/ui/Console.properties
----------------------------------------------------------------------
diff --git a/subprojects/groovy-console/src/main/resources/groovy/ui/Console.properties b/subprojects/groovy-console/src/main/resources/groovy/ui/Console.properties
index f98f237..4574a51 100644
--- a/subprojects/groovy-console/src/main/resources/groovy/ui/Console.properties
+++ b/subprojects/groovy-console/src/main/resources/groovy/ui/Console.properties
@@ -16,6 +16,8 @@
 #  specific language governing permissions and limitations
 #  under the License.
 #
+cli.option.header=The Groovy Swing Console allows a user to enter and run Groovy scripts.
+
 cli.option.help.description=Display this help message
 
 cli.option.version.description=Display the version

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-groovydoc/build.gradle
----------------------------------------------------------------------
diff --git a/subprojects/groovy-groovydoc/build.gradle b/subprojects/groovy-groovydoc/build.gradle
index ef3e292..0f20879 100644
--- a/subprojects/groovy-groovydoc/build.gradle
+++ b/subprojects/groovy-groovydoc/build.gradle
@@ -19,7 +19,7 @@
 dependencies {
     compile rootProject
     testCompile rootProject.sourceSets.test.runtimeClasspath
-    compile project(':groovy-cli-commons')
+    compile project(':groovy-cli-picocli')
     compile project(':groovy-templates')
     runtime project(':groovy-dateutil')
     testCompile project(':groovy-test')

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy b/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
index b304178..4646dec 100644
--- a/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
+++ b/subprojects/groovy-groovydoc/src/main/groovy/org/codehaus/groovy/tools/groovydoc/Main.groovy
@@ -18,7 +18,7 @@
  */
 package org.codehaus.groovy.tools.groovydoc
 
-import groovy.cli.commons.CliBuilder
+import groovy.cli.picocli.CliBuilder
 import groovy.io.FileType
 import org.codehaus.groovy.tools.groovydoc.gstringTemplates.GroovyDocTemplateInfo
 import org.codehaus.groovy.tools.shell.IO
@@ -58,9 +58,10 @@ class Main {
         IO io = new IO()
         Logger.io = io
 
-        def cli = new CliBuilder(usage : 'groovydoc [options] [packagenames] [sourcefiles]', writer: io.out, posix:false)
+        def cli = new CliBuilder(usage: 'groovydoc [options] [packagenames] [sourcefiles]', writer: io.out, posix: false,
+                header: messages['cli.option.header'])
 
-        cli.help(longOpt: 'help', messages['cli.option.help.description'])
+        cli._(names: ['-h', '-help', '--help'], messages['cli.option.help.description'])
         cli._(longOpt: 'version', messages['cli.option.version.description'])
         cli.verbose(messages['cli.option.verbose.description'])
         cli.quiet(messages['cli.option.quiet.description'])

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/Main.properties
----------------------------------------------------------------------
diff --git a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/Main.properties b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/Main.properties
index 6c72823..e3dcdc8 100644
--- a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/Main.properties
+++ b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/Main.properties
@@ -20,6 +20,7 @@
 #
 # CLI messages
 #
+cli.option.header=GroovyDoc is a tool responsible for generating documentation from your code. It acts like the Javadoc tool in the Java world but is capable of handling both groovy and java files.
 
 cli.option.help.description=Display this help message
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
index acdc258..1b7a9a5 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
@@ -47,8 +47,7 @@ import static org.apache.groovy.util.SystemUtil.setSystemPropertyFrom
  *
  * Main CLI entry-point for <tt>groovysh</tt>.
  */
-class Main
-{
+class Main {
     final Groovysh groovysh
 
     /**
@@ -76,8 +75,9 @@ class Main
      * @param main must have a Groovysh member that has an IO member.
      */
     static void main(final String[] args) {
-        CliBuilder cli = new CliBuilder(usage: 'groovysh [options] [...]', formatter: new HelpFormatter(), stopAtNonOption: false)
         MessageSource messages = new MessageSource(Main)
+        CliBuilder cli = new CliBuilder(usage: 'groovysh [options] [...]', formatter: new HelpFormatter(), stopAtNonOption: false,
+                header: messages['cli.option.header'])
         cli.with {
             classpath(messages['cli.option.classpath.description'])
             cp(longOpt: 'classpath', messages['cli.option.cp.description'])

http://git-wip-us.apache.org/repos/asf/groovy/blob/603e5f63/subprojects/groovy-groovysh/src/main/resources/org/codehaus/groovy/tools/shell/Main.properties
----------------------------------------------------------------------
diff --git a/subprojects/groovy-groovysh/src/main/resources/org/codehaus/groovy/tools/shell/Main.properties b/subprojects/groovy-groovysh/src/main/resources/org/codehaus/groovy/tools/shell/Main.properties
index e40ae96..fac864d 100644
--- a/subprojects/groovy-groovysh/src/main/resources/org/codehaus/groovy/tools/shell/Main.properties
+++ b/subprojects/groovy-groovysh/src/main/resources/org/codehaus/groovy/tools/shell/Main.properties
@@ -20,6 +20,7 @@
 #
 # CLI messages
 #
+cli.option.header=The Groovy Shell, aka groovysh, is a command-line application which allows easy access to evaluate Groovy expressions, define classes and run simple experiments.
 
 cli.option.help.description=Display this help message