code: func GenDepsWithPath(pathPrefix string, root http.FileSystem) ([]byte, error) {
  	d, err := root.Open("/")
  	if err != nil {
  		return nil, fmt.Errorf("Failed to open root of %v: %v", root, err)
  	}
  	fi, err := d.Stat()
  	if err != nil {
  		return nil, err
  	}
  	if !fi.IsDir() {
  		return nil, fmt.Errorf("root of %v is not a dir", root)
  	}
  	ent, err := d.Readdir(-1)
  	if err != nil {
  		return nil, fmt.Errorf("Could not read dir entries of root: %v", err)
  	}
  	var buf bytes.Buffer
  	for _, info := range ent {
  		name := info.Name()
  		if !strings.HasSuffix(name, ".js") {
  			continue
  		}
  		if strings.HasPrefix(name, ".#") {
  			// Emacs noise.
  			continue
  		}
  		if strings.HasPrefix(name, "goui.js") {
  			// because it is too large for bufio.Scanner
  			continue
  		}
  		f, err := root.Open(name)
  		if err != nil {
  			return nil, fmt.Errorf("Could not open %v: %v", name, err)
  		}
  		prov, req, err := parseProvidesRequires(info, name, f)
  		f.Close()
  		if err != nil {
  			return nil, fmt.Errorf("Could not parse deps for %v: %v", name, err)
  		}
  		if len(prov) > 0 {
  			fmt.Fprintf(&buf, "goog.addDependency(%q, %v, %v);\n", pathPrefix+name, jsList(prov), jsList(req))
  		}
  	}
  	return buf.Bytes(), nil
  }
docs: // GenDepsWithPath is like GenDeps, but you can specify a path where the files are to be found at runtime relative to Closure's base.js.