From 1f9e4a682d3acf36aa7ee1279f1f9cc928bcd5fd Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 11 Jan 2025 04:03:41 -0600 Subject: rename files --- addMutex.go | 133 ------------------------------------------------------------ 1 file changed, 133 deletions(-) delete mode 100644 addMutex.go (limited to 'addMutex.go') diff --git a/addMutex.go b/addMutex.go deleted file mode 100644 index f9e143e..0000000 --- a/addMutex.go +++ /dev/null @@ -1,133 +0,0 @@ -package main - -// will this help things? -// this is a hack for testing for now -// cram a mutex in the pb.go file - -import ( - "fmt" - "io" - "os" - "strings" - - "go.wit.com/log" -) - -func (pf *File) syncLock(w io.Writer) { - var LOCK string = pf.Base.Lockname // if the Marshall code changes, this will have to change - - fmt.Fprintln(w, "// a simple global lock") - fmt.Fprintln(w, "") - fmt.Fprintln(w, "// this is needed because it seems Marshal() fails if locks are in the structs (?)") - fmt.Fprintln(w, "// this might just be a syntactical runtime error. notsure.") - fmt.Fprintln(w, "// maybe this autogen tool will help someone that actually knows what is going on inside") - fmt.Fprintln(w, "// go/src/google.golang.org/protobuf/proto/proto_methods.go") - fmt.Fprintln(w, "// go/src/google.golang.org/protobuf/proto/encode.go") - fmt.Fprintln(w, "// my guess is that Marshal() needs to be told to ignore sync.RWMutex as it ephemeral and can't be stored") - fmt.Fprintln(w, "") - fmt.Fprintln(w, "var "+LOCK+" sync.RWMutex") - fmt.Fprintln(w, "") -} - -func (pb *Files) addMutex(f *File) error { - fullname := f.Pbfilename - log.Info("pb filename:", fullname) - data, err := os.ReadFile(fullname) - if err != nil { - log.Info("pb filename failed to read:", err) - return err - } - - // check if autogenpb has already looked at this file - for _, line := range strings.Split(string(data), "\n") { - if strings.Contains(line, "autogenpb DO NOT EDIT") { - log.Info("autogenpb has already been run on", fullname) - return nil - } - } - - w, _ := os.OpenFile(f.Pbfilename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - - // the default is to insert a mutex directly into the struct - if argv.Mutex { - pbHeaderComment(w) - } - - 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 - } - // the default is to insert a mutex directly into the struct - if !argv.Mutex { - // mutex is not to be added, only fix the package name - fmt.Fprintln(w, line) - continue - } - - if f.structMatch(line) { - if argv.Mutex { - log.Info("Adding Mutex to:", line) - fmt.Fprintln(w, line) - fmt.Fprintln(w, "\tLock sync.RWMutex // auto-added by go.wit.com/apps/autogenpb") // this must be 'Lock' or Marshal() panics? - // fmt.Fprintln(w, "\t// auto-added by go.wit.com/apps/autogenpb") - // fmt.Fprintln(w, "\tsync.RWMutex") - fmt.Fprintln(w, "") - } else { - log.Info("Skipping. Mutex = false for:", line) - fmt.Fprintln(w, line) - fmt.Fprintln(w, "\t// Lock sync.RWMutex // autogenpb skipped this. needs --mutex command line arg") - fmt.Fprintln(w, "") - } - } else { - fmt.Fprintln(w, line) - } - } - if argv.Mutex { - // verify every structure was found - for _, msg := range f.MsgNames { - if !msg.MutexFound && msg.DoMutex { - return fmt.Errorf("addMutex() parse didn't work for %s", msg.Name) - } - } - } - return nil -} - -// is this struct supposed to have a Mutex added? -func (pf *File) structMatch(line string) bool { - var msg *MsgName - var start string - - msg = pf.Bases - start = "type " + msg.Name + " struct {" - if strings.HasPrefix(line, start) { - msg.MutexFound = true - msg.Lockname = "x.Lock" - return true - } - - // ONLY PASS THIS IF YOU DO NOT WANT TO USE MARSHAL() - - msg = pf.Base - start = "type " + msg.Name + " struct {" - if strings.HasPrefix(line, start) { - msg.MutexFound = true - // msg.Lockname = "x.Lock" - return true - } - - for _, msg = range pf.MsgNames { - start = "type " + msg.Name + " struct {" - if strings.HasPrefix(line, start) { - msg.MutexFound = true - // msg.Lockname = "x.Lock" - return true - } - } - return false -} -- cgit v1.2.3