This module contains classes to allow the use of picocli annotations in Groovy scripts.
This module was introduced in picocli 4.0; in previous versions these classes were included in the main picocli-$version
artifact.
@Grab('info.picocli:picocli-groovy:4.6.3')
@Command(description = "Print a checksum of each specified FILE.",
mixinStandardHelpOptions = true,
version = 'checksum v1.2.3',
showDefaultValues = true)
@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."])
@Field private String algorithm = "SHA-1"
files.each {
println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it
}
See the Groovy Scripts on Steroids article for more details.