docs: public void configure(InputStream is) throws IOException {
          try (BufferedReader reader = new BufferedReader(new InputStreamReader(is))) {
              int lineNumber = 0;
  
              while (true) {
                  String line = reader.readLine();
                  if (line == null) break;
  
                  line = line.trim();
                  lineNumber++;
  
                  if (line.startsWith("#") || line.length() == 0) continue;
  
                  if (line.startsWith(LOAD_PREFIX)) {
                      String loadPath = line.substring(LOAD_PREFIX.length()).trim();
                      loadPath = assignProperties(loadPath);
                      loadFilteredPath(loadPath);
                  } else if (line.startsWith(GRAB_PREFIX)) {
                      String grabParams = line.substring(GRAB_PREFIX.length()).trim();
                      grabList.add(assignProperties(grabParams));
                  } else if (line.startsWith(MAIN_PREFIX)) {
                      if (main != null)
                          throw new IOException("duplicate definition of main in line " + lineNumber + " : " + line);
                      main = line.substring(MAIN_PREFIX.length()).trim();
                  } else if (line.startsWith(PROP_PREFIX)) {
                      String params = line.substring(PROP_PREFIX.length()).trim();
                      String key = SystemUtil.setSystemPropertyFrom(params);
                      System.setProperty(key, assignProperties(System.getProperty(key)));
                  } else if (line.startsWith(CONFIGSCRIPT_PREFIX)) {
                      String script = line.substring(CONFIGSCRIPT_PREFIX.length()).trim();
                      configScripts.add(assignProperties(script));
                  } else {
                      throw new IOException("unexpected line in " + lineNumber + " : " + line);
                  }
              }
          }
  
          if (requireMain && main == null) throw new IOException("missing main class definition in config file");
          if (!configScripts.isEmpty()) {
              System.setProperty("groovy.starter.configscripts", DefaultGroovyMethods.join((Iterable)configScripts, ","));
          }
      }