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 (pb *Files) addMutex(f *File) error { fullname := f.Filebase + ".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(f.Filebase+".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 { if strings.HasPrefix(line, "package ") { log.Info("CHANGING package:", line, "to package:", f.Package) fmt.Fprintln(w, "package "+f.Package) // log.Info("CHANGING package:", line, "to package:main") // fmt.Fprintln(w, "package "+"main") continue } // log.Info("line:", line) start := "type " + "sunshine" + " 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") }