code: func (g *Generator) Fmt(rootPath string) {
  	pwd, _ := os.Getwd()
  	files := []string{}
  	filepath.Walk(rootPath, func(path string, info os.FileInfo, err error) error {
  		path = strings.TrimPrefix(path, pwd+"/")
  		if strings.Contains(path, ".git") || strings.Contains(path, "node_modules") || strings.Contains(path, "vendor"+string(os.PathSeparator)) {
  			if info.IsDir() {
  				return filepath.SkipDir
  			}
  			return nil
  		}
  		if filepath.Ext(path) == ".go" {
  			files = append(files, path)
  		}
  		return nil
  	})
  	c := GoFmt(files...)
  	fmt.Printf("         run  %s\n", strings.Join(c.Args, " "))
  	c.Stdout = os.Stdout
  	c.Stderr = os.Stderr
  	err := c.Run()
  	if err != nil {
  		fmt.Printf("Error running %s: %s", strings.Join(c.Args, " "), err.Error())
  	}
  }
docs: // Fmt formats Go code using `goimports` if available, or `gofmt` otherwise.