autogenpb/protoc.go

78 lines
1.9 KiB
Go
Raw Normal View History

package main
// auto run protoc with the correct args
import (
"errors"
"os"
2024-11-30 12:44:04 -06:00
"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())
2024-11-30 12:44:04 -06:00
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")
}
2024-11-30 12:44:04 -06:00
/*
data, err := os.ReadFile(fullname)
if err != nil {
// log.Info("open config file :", err)
return err
}
2024-11-30 12:44:04 -06:00
w, _ := os.OpenFile(names["protobase"]+".pb.go", os.O_WRONLY|os.O_CREATE, 0600)
2024-11-30 12:44:04 -06:00
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)
}
2024-11-30 12:44:04 -06:00
}
// os.Exit(-1)
if found {
return nil
}
*/