docs: public static Set<URI> listInputDocuments(Options options)
        throws URISyntaxException, IOException {
      URI baseUri = new URI(options.getInput());
  
      // List all documents in the directory or GCS prefix.
      URI absoluteUri;
      if (baseUri.getScheme() != null) {
        absoluteUri = baseUri;
      } else {
        absoluteUri = new URI(
            "file",
            baseUri.getAuthority(),
            baseUri.getPath(),
            baseUri.getQuery(),
            baseUri.getFragment());
      }
  
      Set<URI> uris = new HashSet<>();
      if ("file".equals(absoluteUri.getScheme())) {
        File directory = new File(absoluteUri);
        for (String entry : Optional.fromNullable(directory.list()).or(new String[] {})) {
          File path = new File(directory, entry);
          uris.add(path.toURI());
        }
      } else if ("gs".equals(absoluteUri.getScheme())) {
        GcsUtil gcsUtil = options.as(GcsOptions.class).getGcsUtil();
        URI gcsUriGlob = new URI(
            absoluteUri.getScheme(),
            absoluteUri.getAuthority(),
            absoluteUri.getPath() + "*",
            absoluteUri.getQuery(),
            absoluteUri.getFragment());
        for (GcsPath entry : gcsUtil.expand(GcsPath.fromUri(gcsUriGlob))) {
          uris.add(entry.toUri());
        }
      }
  
      return uris;
    }