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 package repostatus
import ( import (
"errors"
"os" "os"
"path/filepath"
"strings" "strings"
"unicode" "unicode"
@ -59,18 +61,40 @@ func (rs *RepoStatus) IsPrimitive() bool {
return false 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()) log.Info("are there .proto files in:", rs.Path())
all, compiled, err := ScanForProtobuf(rs.Path()) fullp, fullc, err := ScanForProtobuf(rs.Path())
var found bool = false protos := make(map[string]string)
for i, s := range all { protoc := make(map[string]string)
log.Info("found i, s:", i, s) var anyfound bool = false
found = true 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 { for pname, _ := range protos {
log.Info("found compiled i, s:", i, s) 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 // returns the filesystem path to the repo