patch to load git.pb files
This commit is contained in:
parent
fde780869e
commit
cba9b43064
|
@ -166,17 +166,42 @@ func savePatchset(w http.ResponseWriter, msg []byte) {
|
||||||
regfile.Close()
|
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))
|
log.Info("proto.Unmarshal() try message len", len(msg))
|
||||||
m := gitpb.NewRepos()
|
m := gitpb.NewRepos()
|
||||||
if err := m.Unmarshal(msg); err != nil {
|
if err := m.Unmarshal(msg); err != nil {
|
||||||
log.Info("gitpb.Repos.Unmarshal() failed. len(msg) =", len(msg), err)
|
log.Info("gitpb.Repos.Unmarshal() failed. len(msg) =", len(msg), err)
|
||||||
return m, err
|
return m, err
|
||||||
}
|
}
|
||||||
|
newpb := gitpb.NewRepos()
|
||||||
log.Info("GOT repos:", len(msg))
|
log.Info("GOT repos:", len(msg))
|
||||||
for repo := range m.IterAll() {
|
for repo := range m.IterAll() {
|
||||||
log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
|
log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath)
|
||||||
// fmt.Fprintln(w, "repo:", repo.FullPath, repo.Namespace)
|
if repo.Namespace == "" {
|
||||||
|
log.Info("todo: namespace empty for", repo.FullPath)
|
||||||
|
continue
|
||||||
|
// return nil, fmt.Errorf("todo: namespace empty for " + repo.FullPath)
|
||||||
}
|
}
|
||||||
return m, nil
|
// 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 newpb, nil
|
||||||
}
|
}
|
||||||
|
|
14
http.go
14
http.go
|
@ -45,8 +45,18 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if route == "/lookup" {
|
if route == "/lookup" {
|
||||||
// repos, err := lookupRepos(w, msg)
|
found, err := lookupRepos(msg)
|
||||||
lookupRepos(w, 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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue