From 5e794683745260f726c892e1862b05e65910abaf Mon Sep 17 00:00:00 2001 From: rpopma Date: Sat, 4 Nov 2017 23:13:17 +0900 Subject: [PATCH] Second draft of "Picocli 2.0: Groovy Scripts on Steroids" article. --- docs/images/WhereIsMyCode.png | Bin 0 -> 94904 bytes ...cocli-2.0-groovy-scripts-on-steroids.adoc} | 105 ++- ...icocli-2.0-groovy-scripts-on-steroids.html | 796 ++++++++++++++++++ 3 files changed, 868 insertions(+), 33 deletions(-) create mode 100644 docs/images/WhereIsMyCode.png rename docs/{picocli-v2-groovy-scripts-on-steroids.adoc => picocli-2.0-groovy-scripts-on-steroids.adoc} (63%) create mode 100644 docs/picocli-2.0-groovy-scripts-on-steroids.html diff --git a/docs/images/WhereIsMyCode.png b/docs/images/WhereIsMyCode.png new file mode 100644 index 0000000000000000000000000000000000000000..19077dabd7418d6b5491311607d21c6e2c6699a0 GIT binary patch literal 94904 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 literal 0 HcmV?d00001 diff --git a/docs/picocli-v2-groovy-scripts-on-steroids.adoc b/docs/picocli-2.0-groovy-scripts-on-steroids.adoc similarity index 63% rename from docs/picocli-v2-groovy-scripts-on-steroids.adoc rename to docs/picocli-2.0-groovy-scripts-on-steroids.adoc index aee3e0ed..dd5970eb 100644 --- a/docs/picocli-v2-groovy-scripts-on-steroids.adoc +++ b/docs/picocli-2.0-groovy-scripts-on-steroids.adoc @@ -1,13 +1,14 @@ -= Picocli v2: Groovy Scripts on Steroids += Picocli 2.0: Groovy Scripts on Steroids //:author: Remko Popma //:email: rpopma@apache.org //:revnumber: 2.1.0-SNAPSHOT -//:revdate: 2017-11-03 +//:revdate: 2017-11-04 +:prewrap!: :source-highlighter: coderay :icons: font :imagesdir: images -Picocli v2 adds improved support for other JVM languages, especially Groovy. +Picocli 2.0 adds improved support for other JVM languages, especially Groovy. Why use picocli when the Groovy language has built-in CLI support with the http://docs.groovy-lang.org/2.4.7/html/gapi/groovy/util/CliBuilder.html[CliBuilder] class? You may like picocli's usage help, which shows ANSI http://picocli.info/#_ansi_colors_and_styles[colors and styles] @@ -33,13 +34,10 @@ but users may specify a different MessageDigest algorithm. Users can request usa @Grab('info.picocli:picocli:2.0.1') @picocli.groovy.PicocliScript import groovy.transform.Field - -import java.nio.file.Files import java.security.MessageDigest - import static picocli.CommandLine.* -@Parameters(arity = "1", paramLabel = "FILE", description= "The file(s) whose checksum to calculate.") +@Parameters(arity="1", paramLabel="FILE", description="The file(s) whose checksum to calculate.") @Field File[] files @Option(names = ["-a", "--algorithm"], description = [ @@ -47,13 +45,11 @@ import static picocli.CommandLine.* " or any other MessageDigest algorithm."]) @Field String algorithm = "MD5" -@Option(names = ["-h", "--help"], usageHelp = true, description = "Show this help message and exit.") +@Option(names= ["-h", "--help"], usageHelp= true, description= "Show this help message and exit.") @Field boolean helpRequested files.each { - byte[] fileContents = Files.readAllBytes(it.toPath()) - byte[] digest = MessageDigest.getInstance(algorithm).digest(fileContents) - println javax.xml.bind.DatatypeConverter.printHexBinary(digest) + "\t" + it + println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it } ---- When run in the `$picocli-home/examples/src/main/groovy/picocli/examples` directory, @@ -62,8 +58,9 @@ this example script gives the following results: [source,bash] ---- $ groovy checksum.groovy *.* -4DCE157CA654199494642D49FB67BF11 checksum.groovy -8C7D823F1C9345213977FF6DA964AA02 checksum-with-banner.groovy +4995d24bbb3adf67e2120c36dd3027b7 checksum.groovy +a03c852de017f9303fcc373c7adafac6 checksum-with-banner.groovy +1ee567193bf41cc835ce76b6ca29ed30 checksum-without-base.groovy ---- Invoking the script with the `-h` or `--help` option shows the usage help message @@ -71,8 +68,51 @@ with ANSI colors and styles below: image:GroovyChecksum.png[Usage help with ANSI colors and styles] -You may have noticed that the script does not contain any logic for parsing the command -line arguments or for handling requests for usage help. Let's take a look at how this works. +== Where's the Code? + +You may have noticed that the above script does not contain any logic for parsing the command +line arguments or for handling requests for usage help. + +[.text-center] +image:WhereIsMyCode.png[Dude, where's my code?,width='35%'] + +Without the `@picocli.groovy.PicocliScript` annotation, the script code would look something like this: + +[source,groovy] +---- +class Checksum { + @Parameters(arity = "1", paramLabel = "FILE", description = "...") + File[] files + + @Option(names = ["-a", "--algorithm"], description = ["..."]) + String algorithm = "MD5" + + @Option(names = ["-h", "--help"], usageHelp = true, description = "...") + boolean helpRequested +} +Checksum checksum = new Checksum() +CommandLine commandLine = new CommandLine(checksum) +try { + commandLine.parse(args) + if (commandLine.usageHelpRequested) { + commandLine.usage(System.out) + } else { + checksum.files.each { + byte[] digest = MessageDigest.getInstance(checksum.algorithm).digest(it.bytes) + println digest.encodeHex().toString() + "\t" + it + } + } +} catch (ParameterException ex) { + println ex.message + commandLine.usage(System.out) +} +---- + +The above example has explicit code to parse the command line, deal with invalid user input, +and check for usage help requests. +The first version of the script did not have any of this boilerplate code. + +Let's take a look at how this works. == Basescript @@ -81,7 +121,7 @@ Scripts annotated with `@picocli.groovy.PicocliScript` are automatically transfo This turns a Groovy script into a picocli-based command line application. [.text-center] -image:AllYourBase.png[ALL YOUR BASE ARE BELONG TO US] +image:AllYourBase.png[Alt="ALL YOUR BASE ARE BELONG TO US",width='35%'] When the script is run, Groovy calls the script's `run` method. The `PicocliBaseScript::run` method takes care of parsing the command line and populating the script @@ -95,10 +135,11 @@ fields with the results. The run method does the following: * Otherwise, the script body is executed. -See the http://picocli.info/apidocs/picocli/groovy/PicocliBaseScript.html#run--[PicocliBaseScript javadoc] for more details. +This behavior can be customized, see the http://picocli.info/apidocs/picocli/groovy/PicocliBaseScript.html#run--[PicocliBaseScript javadoc] for more details. In addition to changing the script base class, the `@PicocliScript` annotation also allows Groovy -scripts to use the `@Command` annotation. The picocli parser will look for this annotation on the +scripts to use the `@Command` annotation directly, without introducing a helper class. +The picocli parser will look for this annotation on the class containing the `@Option` and `@Parameters`-annotated fields. The same custom http://picocli.info/apidocs/picocli/groovy/PicocliScriptASTTransformation.html[AST transformation] that changes the script's base class also moves any `@Command` annotation in the script to this @@ -106,9 +147,10 @@ transformed class so the picocli parser can pick it up. == Usage Help With Colors -The `@Command` annotation lets you customize parts of the usage help message like command name, description, headers, footers etc. +The `@Command` annotation lets you customize parts of the http://picocli.info/#_usage_help[usage help] message like command name, description, headers, footers etc. -Let's add some bells and whistles to the above script. +Let's add some bells and whistles to the example script. +(Credit to http://patorjk.com/software/taag/ for the ASCII Art Generator.) [source,groovy] ---- @@ -128,13 +170,10 @@ Let's add some bells and whistles to the above script. ) @picocli.groovy.PicocliScript import groovy.transform.Field - -import java.nio.file.Files import java.security.MessageDigest - import static picocli.CommandLine.* -@Parameters(arity = "1", paramLabel = "FILE", description= "The file(s) whose checksum to calculate.") +@Parameters(arity="1", paramLabel="FILE", description="The file(s) whose checksum to calculate.") @Field private File[] files @Option(names = ["-a", "--algorithm"], description = [ @@ -142,29 +181,29 @@ import static picocli.CommandLine.* " any other MessageDigest algorithm. See [1] for more details."]) @Field private String algorithm = "MD5" -@Option(names = ["-h", "--help"], usageHelp = true, description = "Show this help message and exit.") +@Option(names= ["-h", "--help"], usageHelp=true, description="Show this help message and exit.") @Field private boolean helpRequested -@Option(names = ["-V", "--version"], versionHelp = true, description = "Show version info and exit.") +@Option(names= ["-V", "--version"], versionHelp=true, description="Show version info and exit.") @Field private boolean versionInfoRequested files.each { - byte[] fileContents = Files.readAllBytes(it.toPath()) - byte[] digest = MessageDigest.getInstance(algorithm).digest(fileContents) - println javax.xml.bind.DatatypeConverter.printHexBinary(digest) + "\t" + it + println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it } ---- The new version of the script adds a header and footer, and the ability to print version information. All text displayed in the usage help message and version information may contain format specifiers -like the '`%n`' line separator. +like the `%n` line separator. The usage help message can also display ANSI colors and styles. Picocli supports a simple markup syntax where `@|` starts an ANSI styled section and `|@` ends it. Immediately following the `@|` is a comma-separated list of colors and styles, -like `@|STYLE1[,STYLE2]… text|@`. +like `@|STYLE1[,STYLE2]... text|@`. See the picocli http://picocli.info/#_usage_help_with_styles_and_colors[user manual] for details on what colors and styles are available. +The usage help message for the new script looks like this: + image:GroovyChecksumWithBanner.png[Customized header and footer with styles and colors] The `@Command` annotation also has a `version = "checksum v1.2.3"` attribute. @@ -181,8 +220,8 @@ For more details, see the http://picocli.info/#_version_help[Version Help] secti == Conclusion -The script above is surprisingly small given all the things it can do. -Most of the code is actually description text for the usage help message. +The `@PicocliScript` annotation allows Groovy scripts to omit boilerplate code and while adding powerful common command line application functionality. +In the final version of our example script, most of the code is actually description text for the usage help message. There is a lot more to picocli, give it a try! diff --git a/docs/picocli-2.0-groovy-scripts-on-steroids.html b/docs/picocli-2.0-groovy-scripts-on-steroids.html new file mode 100644 index 00000000..3244a2ca --- /dev/null +++ b/docs/picocli-2.0-groovy-scripts-on-steroids.html @@ -0,0 +1,796 @@ + + + + + + + +Picocli 2.0: Groovy Scripts on Steroids + + + + + + + +
+
+
+ +
+

You may like picocli’s usage help, which shows ANSI colors and styles +by default. Another feature you may fancy is the command line +TAB autocompletion. Finally, there is a slew of smaller features, +like the fact that your script needs zero lines of command line parsing code, +picocli’s subcommand support, +type conversion for both options and positional parameters, +and parser tracing, to name a few.

+
+
+

cli

+
+
+
+
+

Example

+
+
+

Let’s take a look at an example. The checksum.groovy script below takes one or more file parameters, +and for each file prints out a checksum and the file name. The "checksum" algorithm is MD5 by default, +but users may specify a different MessageDigest algorithm. Users can request usage help with the +-h or --help option.

+
+
+
+
@Grab('info.picocli:picocli:2.0.1')
+@picocli.groovy.PicocliScript
+import groovy.transform.Field
+import java.security.MessageDigest
+import static picocli.CommandLine.*
+
+@Parameters(arity="1", paramLabel="FILE", description="The file(s) whose checksum to calculate.")
+@Field File[] files
+
+@Option(names = ["-a", "--algorithm"], description = [
+        "MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512,",
+        "  or any other MessageDigest algorithm."])
+@Field String algorithm = "MD5"
+
+@Option(names= ["-h", "--help"], usageHelp= true, description= "Show this help message and exit.")
+@Field boolean helpRequested
+
+files.each {
+  println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it
+}
+
+
+
+

When run in the $picocli-home/examples/src/main/groovy/picocli/examples directory, +this example script gives the following results:

+
+
+
+
$ groovy checksum.groovy *.*
+4995d24bbb3adf67e2120c36dd3027b7        checksum.groovy
+a03c852de017f9303fcc373c7adafac6        checksum-with-banner.groovy
+1ee567193bf41cc835ce76b6ca29ed30        checksum-without-base.groovy
+
+
+
+

Invoking the script with the -h or --help option shows the usage help message +with ANSI colors and styles below:

+
+
+

Usage help with ANSI colors and styles

+
+
+
+
+

Where’s the Code?

+
+
+

You may have noticed that the above script does not contain any logic for parsing the command +line arguments or for handling requests for usage help.

+
+
+

Dude

+
+
+

Without the @picocli.groovy.PicocliScript annotation, the script code would look something like this:

+
+
+
+
class Checksum {
+    @Parameters(arity = "1", paramLabel = "FILE", description = "...")
+    File[] files
+
+    @Option(names = ["-a", "--algorithm"], description = ["..."])
+    String algorithm = "MD5"
+
+    @Option(names = ["-h", "--help"], usageHelp = true, description = "...")
+    boolean helpRequested
+}
+Checksum checksum = new Checksum()
+CommandLine commandLine = new CommandLine(checksum)
+try {
+    commandLine.parse(args)
+    if (commandLine.usageHelpRequested) {
+        commandLine.usage(System.out)
+    } else {
+        checksum.files.each {
+            byte[] digest = MessageDigest.getInstance(checksum.algorithm).digest(it.bytes)
+            println digest.encodeHex().toString() + "\t" + it
+        }
+    }
+} catch (ParameterException ex) {
+    println ex.message
+    commandLine.usage(System.out)
+}
+
+
+
+

The above example has explicit code to parse the command line, deal with invalid user input, +and check for usage help requests. +The first version of the script did not have any of this boilerplate code.

+
+
+

Let’s take a look at how this works.

+
+
+
+
+

Basescript

+
+
+

Scripts annotated with @picocli.groovy.PicocliScript are automatically transformed to use +picocli.groovy.PicocliBaseScript as their base class. +This turns a Groovy script into a picocli-based command line application.

+
+
+

AllYourBase

+
+
+

When the script is run, Groovy calls the script’s run method. +The PicocliBaseScript::run method takes care of parsing the command line and populating the script +fields with the results. The run method does the following:

+
+
+
    +
  • +

    First, @Field variables annotated with @Option or @Parameters are initialized from the command line arguments.

    +
  • +
  • +

    If the user input was invalid, an error message is printed followed by the usage help message.

    +
  • +
  • +

    If the user requested usage help or version information, this is printed to the console and the script exits.

    +
  • +
  • +

    Otherwise, the script body is executed.

    +
  • +
+
+
+

This behavior can be customized, see the PicocliBaseScript javadoc for more details.

+
+
+

In addition to changing the script base class, the @PicocliScript annotation also allows Groovy +scripts to use the @Command annotation directly, without introducing a helper class. +The picocli parser will look for this annotation on the +class containing the @Option and @Parameters-annotated fields. The same custom +AST transformation +that changes the script’s base class also moves any @Command annotation in the script to this +transformed class so the picocli parser can pick it up.

+
+
+
+
+

Usage Help With Colors

+
+
+

The @Command annotation lets you customize parts of the usage help message like command name, description, headers, footers etc.

+
+
+

Let’s add some bells and whistles to the example script. +(Credit to http://patorjk.com/software/taag/ for the ASCII Art Generator.)

+
+
+
+
@Grab('info.picocli:picocli:2.0.1')
+@Command(header = [
+    "@|bold,green    ___                            ___ _           _                  |@",
+    "@|bold,green   / __|_ _ ___  _____ ___  _     / __| |_  ___ __| |__ ____  _ _ __  |@",
+    "@|bold,green  | (_ | '_/ _ \\/ _ \\ V / || |   | (__| ' \\/ -_) _| / /(_-< || | '  \\ |@",
+    "@|bold,green   \\___|_| \\___/\\___/\\_/ \\_, |    \\___|_||_\\___\\__|_\\_\\/__/\\_,_|_|_|_||@",
+    "@|bold,green                         |__/                                         |@"
+        ],
+        description = "Print a checksum of each specified FILE.",
+        version = 'checksum v1.2.3', showDefaultValues = true,
+        footerHeading = "%nFor more details, see:%n",
+        footer = ["[1] https://docs.oracle.com/javase/9/docs/specs/security/standard-names.html",
+                "ASCII Art thanks to http://patorjk.com/software/taag/"]
+)
+@picocli.groovy.PicocliScript
+import groovy.transform.Field
+import java.security.MessageDigest
+import static picocli.CommandLine.*
+
+@Parameters(arity="1", paramLabel="FILE", description="The file(s) whose checksum to calculate.")
+@Field private File[] files
+
+@Option(names = ["-a", "--algorithm"], description = [
+        "MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512, or",
+        "  any other MessageDigest algorithm. See [1] for more details."])
+@Field private String algorithm = "MD5"
+
+@Option(names= ["-h", "--help"], usageHelp=true, description="Show this help message and exit.")
+@Field private boolean helpRequested
+
+@Option(names= ["-V", "--version"], versionHelp=true, description="Show version info and exit.")
+@Field private boolean versionInfoRequested
+
+files.each {
+  println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it
+}
+
+
+
+

The new version of the script adds a header and footer, and the ability to print version information. +All text displayed in the usage help message and version information may contain format specifiers +like the %n line separator.

+
+
+

The usage help message can also display ANSI colors and styles. +Picocli supports a simple markup syntax where @| starts an ANSI styled section and |@ ends it. +Immediately following the @| is a comma-separated list of colors and styles, +like @|STYLE1[,STYLE2]…​ text|@. +See the picocli user manual for details on what colors and styles are available.

+
+
+

The usage help message for the new script looks like this:

+
+
+

Customized header and footer with styles and colors

+
+
+

The @Command annotation also has a version = "checksum v1.2.3" attribute. +This version string is printed when the user specifies --version on the command line because +we declared an @Option with that name with attribute versionHelp = true.

+
+
+
+
$ groovy checksum-with-banner.groovy --version
+checksum v1.2.3
+
+
+
+

For more details, see the Version Help section of the user manual.

+
+
+
+
+

Conclusion

+
+
+

The @PicocliScript annotation allows Groovy scripts to omit boilerplate code and while adding powerful common command line application functionality. +In the final version of our example script, most of the code is actually description text for the usage help message.

+
+
+

There is a lot more to picocli, give it a try!

+
+
+

Please star the project on GitHub if you like it and tell your friends!

+
+
+
+
+ + + \ No newline at end of file