docs: static void processArgs(String[] args, final PrintStream out, final PrintStream err) {
          GroovyCommand groovyCommand = new GroovyCommand();
          CommandLine parser = new CommandLine(groovyCommand).setUnmatchedArgumentsAllowed(true).setStopAtUnmatched(true);
          try {
              List<CommandLine> result = parser.parse(args);
              if (CommandLine.printHelpIfRequested(result, out, err, Help.Ansi.AUTO)) {
                  return;
              }
              // TODO: pass printstream(s) down through process
              if (!groovyCommand.process(parser)) {
                  // If we fail, then exit with an error so scripting frameworks can catch it.
                  System.exit(1);
              }
  
          } catch (ParameterException ex) { // command line arguments could not be parsed
              err.println(ex.getMessage());
              ex.getCommandLine().usage(err);
          } catch (IOException ioe) {
              err.println("error: " + ioe.getMessage());
          }
      }