find .proto and .pb.go files

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-11-06 20:30:00 -06:00
parent 44ab5deb3f
commit 3ce9f5f773
1 changed files with 33 additions and 9 deletions

View File

@ -1,7 +1,9 @@
package repostatus
import (
"errors"
"os"
"path/filepath"
"strings"
"unicode"
@ -59,18 +61,40 @@ func (rs *RepoStatus) IsPrimitive() bool {
return false
}
func (rs *RepoStatus) IsProtobuf() (bool, []string, []string, error) {
func (rs *RepoStatus) IsProtobuf() (bool, []string, error) {
log.Info("are there .proto files in:", rs.Path())
all, compiled, err := ScanForProtobuf(rs.Path())
var found bool = false
for i, s := range all {
log.Info("found i, s:", i, s)
found = true
fullp, fullc, err := ScanForProtobuf(rs.Path())
protos := make(map[string]string)
protoc := make(map[string]string)
var anyfound bool = false
var allc []string
for _, s := range fullp {
filebase := filepath.Base(s)
name := strings.TrimSuffix(filebase, ".proto")
// log.Info("found i, s:", i, name, filebase)
anyfound = true
protos[name] = s
}
for i, s := range compiled {
log.Info("found compiled i, s:", i, s)
for pname, _ := range protos {
var found bool = false
for _, s := range fullc {
cfilebase := filepath.Base(s)
cname := strings.TrimSuffix(cfilebase, ".pb.go")
// log.Info("found compiled i, s:", i, cname, cfilebase)
protoc[cname] = s
if cname == pname {
found = true
allc = append(allc, cfilebase)
}
}
if found {
// log.Info("found ok")
} else {
log.Info("not found")
err = errors.New("compiled file " + pname + ".pb.go missing")
}
}
return found, all, compiled, err
return anyfound, allc, err
}
// returns the filesystem path to the repo