package main // will this help things? // this is a hack for testing for now // cram a mutex in the pb.go file import ( "errors" "fmt" "os" "strings" "go.wit.com/log" ) func addMutex(names map[string]string) error { fullname := names["protobase"] + ".pb.go" log.Info("fullname:", fullname) 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|os.O_TRUNC, 0644) 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, "\tLock sync.RWMutex // auto-added by go.wit.com/apps/autogenpb") fmt.Fprintln(w, "") } else { fmt.Fprintln(w, line) } } // os.Exit(-1) if found { return nil } return errors.New("addMutex() parse didn't work") }