package picocli.examples @Grab('info.picocli:picocli-groovy:4.5.1') //@GrabExclude('org.codehaus.groovy:groovy-all') import groovy.transform.Field import java.security.MessageDigest import static picocli.CommandLine.* @picocli.groovy.PicocliScript @Command(name = 'checksum', mixinStandardHelpOptions = true, version = 'checksum 4.0', description = 'Print a checksum of each specified FILE, using the specified MessageDigest algorithm.') @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 = 'MD5' files.each { println MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex().toString() + "\t" + it }