// 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" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) var ErrorNeedArgvFix error = errors.New("add --fix") 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 doDev() (string, error) { if argv.Dev.Generate != "" { // helps run 'go generate' in a particular repo found := me.forge.Repos.FindByNamespace(argv.Dev.Generate) if found == nil { return "", fmt.Errorf("unknown namespace %s", argv.Dev.Generate) } err := smartAutogen(found) return "autogen *.proto", err } if argv.Dev.Install != nil { if err := doInstall(); err != nil { return "install failed", err } return "installed ok", nil } if argv.Dev.Build != nil { if err := doBuild(); err != nil { return "build failed", err } return "build ok", nil } if argv.Dev.BuildForge { downloadForge() return "todo: build forge", nil } return "todo: do something here", nil }