docs: public synchronized @Nonnull String version() throws IOException {
      if (this.version == null) {
        Process p = runFunc.run(ImmutableList.of(path, "-version"));
        try {
          BufferedReader r = wrapInReader(p);
          this.version = r.readLine();
          CharStreams.copy(r, CharStreams.nullWriter()); // Throw away rest of the output
  
          throwOnError(p);
        } finally {
          p.destroy();
        }
      }
      return version;
    }