// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "errors" "fmt" "os" "path/filepath" "strings" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func smartAutogen(repo *gitpb.Repo) error { os.Chdir(repo.FullPath) globPattern := "*.proto" files, err := filepath.Glob(globPattern) if err != nil { log.Info("glob error", err, files) } for _, filename := range files { cmd := []string{"autogenpb", "--proto", filename} shell.RunVerbose(cmd) } return err } // so don't delete them func doGenerate() (string, error) { // var s string // var err error if argv.Generate.Make != nil { pfile, _ := resources.ReadFile("resources/generate") for _, namespace := range strings.Split(string(pfile), "\n") { namespace = strings.TrimSpace(namespace) if namespace == "" { continue } if strings.HasPrefix(namespace, "#") { continue } log.Info("LINE:", namespace) // helps run 'go generate' in a particular repo found := me.forge.Repos.FindByNamespace(namespace) if found == nil { return "", fmt.Errorf("unknown namespace %s", namespace) } err := smartAutogen(found) if err != nil { return "autogen failed: " + namespace, err } } return "generate worked", nil } return "generate didn't run", errors.New("no subcommand chosen") }