// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0 package forgepb import ( "go.wit.com/log" ) // retrieves current patches from forge func (f *Forge) GetPatches() error { url := f.forgeURL + "GetPatchsets" log.Info("GetPatchsets() url", url) body, err := f.HttpPost(url, nil) if err != nil { log.Info("httpPost() failed:", err) return err } log.Info("GetPatchets() len(body)", len(body)) var psets *Patchsets psets = new(Patchsets) err = psets.Unmarshal(body) if err != nil { log.Info("Unmarshal failed", err) return err } /* filename := filepath.Join("/tmp", pbfile) f, _ := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) f.Write(body) f.Close() */ psets.PrintTable() f.loadUpstreamPatchsets(psets) return nil } func (f *Forge) loadUpstreamPatchsets(psets *Patchsets) { var foundnew bool all := psets.All() for all.Scan() { pset := all.Next() found := f.Patchsets.FindByUuid(pset.Uuid) if found == nil { log.Info("new patchset", pset.Name, pset.Uuid) pset.State = "new" foundnew = true if pset == nil { log.Warn("OH NO! pset == nil") continue } if f.Patchsets == nil { log.Warn("OH NO! f.Patchsets == nil") continue } f.Patchsets.Append(pset) } else { log.Info("patchset already on disk", found.Name, found.State) pset.State = found.State if pset.State == "" { pset.State = "new" } } } if foundnew { f.SavePatchsets() } }