package main // auto run protoc with the correct args import ( "errors" "os" "strings" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) // test.pb.go: test.proto // cd ~/go/src && protoc --go_out=. --proto_path=go.wit.com/apps/autogenpb/testautogen \ // --go_opt=Mtest.proto=go.wit.com/apps/autogenpb/testautogen \ // test.proto // forgeConfig.pb.go: forgeConfig.proto // cd ~/go/src && protoc --go_out=. --proto_path=go.wit.com/apps/autogenpb/testautogen \ // --go_opt=MforgeConfig.proto=go.wit.com/apps/autogenpb/testautogen \ // forgeConfig.proto func protocBuild(names map[string]string) error { // have to figure out how to run protoc so initialize forge forge = forgepb.Init() // forge.ConfigPrintTable() os.Setenv("REPO_WORK_PATH", forge.GetGoSrc()) log.Info("") if shell.Exists(names["protoc"]) { log.Info("protoc file already created", names["protoc"]) return nil } log.Info("make protoc file:", names["protoc"]) log.Info("go src", forge.GetGoSrc()) pwd, _ := os.Getwd() log.Info("go.Getwd()", pwd) if ! strings.HasPrefix(pwd, forge.GetGoSrc()) { return errors.New("paths don't match") } gopath := strings.TrimPrefix(pwd, forge.GetGoSrc()) log.Info("gopath", gopath) return errors.New("make protoc here") } /* data, err := os.ReadFile(fullname) if err != nil { // log.Info("open config file :", err) return err } w, _ := os.OpenFile(names["protobase"]+".pb.go", os.O_WRONLY|os.O_CREATE, 0600) var found bool lines := strings.Split(string(data), "\n") for _, line := range lines { // log.Info("line:", line) start := "type " + names["Bases"] + " struct {" if strings.HasSuffix(line, start) { found = true log.Info("FOUND line:", line) fmt.Fprintln(w, line) fmt.Fprintln(w, "\tsync.RWMutex // auto-added by go.wit.com/apps/autogenpb") fmt.Fprintln(w, "") } else { fmt.Fprintln(w, line) } } // os.Exit(-1) if found { return nil } */