diff options
| author | Jeff Carr <[email protected]> | 2025-07-07 17:33:06 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-07-07 18:54:37 -0500 |
| commit | cba9b430649fb345352c58b7f64aa1d39e673796 (patch) | |
| tree | ba39f4e64baaaa2040ed8f23468672b8eb354046 | |
| parent | fde780869eddd1f2765c9de3c17c38d67fa76174 (diff) | |
patch to load git.pb files
| -rw-r--r-- | doPatchsets.go | 29 | ||||
| -rw-r--r-- | http.go | 14 |
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 } @@ -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 } |
