summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-07-07 17:33:06 -0500
committerJeff Carr <[email protected]>2025-07-07 18:54:37 -0500
commitcba9b430649fb345352c58b7f64aa1d39e673796 (patch)
treeba39f4e64baaaa2040ed8f23468672b8eb354046
parentfde780869eddd1f2765c9de3c17c38d67fa76174 (diff)
patch to load git.pb files
-rw-r--r--doPatchsets.go29
-rw-r--r--http.go14
2 files changed, 39 insertions, 4 deletions
diff --git a/doPatchsets.go b/doPatchsets.go
index 55a1f0a..2d70440 100644
--- a/doPatchsets.go
+++ b/doPatchsets.go
@@ -166,17 +166,42 @@ func savePatchset(w http.ResponseWriter, msg []byte) {
regfile.Close()
}
-func lookupRepos(w http.ResponseWriter, msg []byte) (*gitpb.Repos, error) {
+func lookupRepos(msg []byte) (*gitpb.Repos, error) {
log.Info("proto.Unmarshal() try message len", len(msg))
m := gitpb.NewRepos()
if err := m.Unmarshal(msg); err != nil {
log.Info("gitpb.Repos.Unmarshal() failed. len(msg) =", len(msg), err)
return m, err
}
+ newpb := gitpb.NewRepos()
log.Info("GOT repos:", len(msg))
for repo := range m.IterAll() {
log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
+ if repo.Namespace == "" {
+ log.Info("todo: namespace empty for", repo.FullPath)
+ continue
+ // return nil, fmt.Errorf("todo: namespace empty for " + repo.FullPath)
+ }
// fmt.Fprintln(w, "repo:", repo.FullPath, repo.Namespace)
+ bytes, err := os.ReadFile(filepath.Join("/home/forge", repo.Namespace, "git.pb"))
+ if err != nil {
+ log.Info("todo: git.pb non-existant:", repo.FullPath)
+ // return nil, err
+ continue
+ }
+ newr := new(gitpb.Repo)
+ if err := newr.Unmarshal(bytes); err != nil {
+ log.Info("todo: unmarshal failed for git.pb:", repo.FullPath)
+ // return nil, fmt.Errorf("todo: generate git.pb for " + repo.Namespace)
+ continue
+ }
+ // log.Infof("repo unmarshal worked:%s,%s\n", repo.Namespace, repo.FullPath)
+ newpb.Append(newr)
+ }
+
+ // print out found git.pb files
+ for repo := range newpb.IterAll() {
+ log.Infof("found repo:%-14s,%s\n", repo.GetMasterVersion(), repo.Namespace)
}
- return m, nil
+ return newpb, nil
}
diff --git a/http.go b/http.go
index 030983e..ffbc5e3 100644
--- a/http.go
+++ b/http.go
@@ -45,8 +45,18 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
}
if route == "/lookup" {
- // repos, err := lookupRepos(w, msg)
- lookupRepos(w, msg)
+ found, err := lookupRepos(msg)
+ if err != nil {
+ return
+ }
+ // marshal the protobuf to xfer over the socket
+ data, err := found.Marshal()
+ if err != nil {
+ log.Info("repos.Marshal() to wire failed", err)
+ return
+ }
+
+ w.Write(data)
return
}