rm old code
This commit is contained in:
parent
235fe57beb
commit
ef00352a0b
|
@ -1,84 +0,0 @@
|
||||||
// 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 {
|
|
||||||
body, err := f.HttpPost("junk", "GetPatchsets", 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
|
|
||||||
}
|
|
||||||
psets.PrintTable()
|
|
||||||
f.loadUpstreamPatchsets(psets)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Forge) expireAllPatchsets() {
|
|
||||||
all := f.Patchsets.All()
|
|
||||||
for all.Scan() {
|
|
||||||
pset := all.Next()
|
|
||||||
pset.State = "DONE"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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 {
|
|
||||||
f.expireAllPatchsets()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
log.Warn("appending pset", pset.Uuid, pset.State, pset.Name)
|
|
||||||
f.Patchsets.Append(pset)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
author := log.Sprintf("Author: %s <%s>", found.GitAuthorName, found.GitAuthorEmail)
|
|
||||||
log.Info("EXAMINE PSET", pset.Name, pset.Uuid, pset.Patches.Len())
|
|
||||||
for _, patch := range pset.Patches.Patches {
|
|
||||||
// log.Info("\tnew patch:", i, patch.CommitHash, patch.Namespace)
|
|
||||||
if f.findPatch(patch) {
|
|
||||||
// log.Info("\talready found!!!!!!!", pset.Uuid, patch.Namespace)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if f.AddNewPatch(patch) {
|
|
||||||
log.Info("\tnew patch added:", patch.CommitHash, found.Name, found.Comment, author)
|
|
||||||
foundnew = true
|
|
||||||
} else {
|
|
||||||
log.Info("\tnew patch failed:", patch.CommitHash, found.Name, found.Comment, author)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pset.State = found.State
|
|
||||||
if pset.State == "" {
|
|
||||||
pset.State = "new"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if foundnew {
|
|
||||||
f.SavePatchsets()
|
|
||||||
}
|
|
||||||
}
|
|
170
patchset.Send.go
170
patchset.Send.go
|
@ -1,170 +0,0 @@
|
||||||
package forgepb
|
|
||||||
|
|
||||||
// functions to import and export the protobuf
|
|
||||||
// data to and from config files
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"go.wit.com/lib/protobuf/httppb"
|
|
||||||
"go.wit.com/log"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (f *Forge) SendPatches(what string, p *Patches) (*Patches, error) {
|
|
||||||
route := "/patches/" + what
|
|
||||||
data, err := p.Marshal()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Infof("pb: len=%d, err=%v\n", len(data), err)
|
|
||||||
newdata, err := httppb.HttpPost("rm this", route, data)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if newdata == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if len(newdata) == 0 {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Info("TODO: Unmarshal() to patches", len(newdata))
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// makes a new patches protobuf. These are all the patches on your machine.
|
|
||||||
func NewPatches() *Patches {
|
|
||||||
x := new(Patches)
|
|
||||||
x.Uuid = "2679065e-c81d-4a00-aca4-03c158a834fb"
|
|
||||||
x.Version = "v2.0.0 go.wit.com/lib/protobuf/forgepb"
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Forge) SendPatchSet(pset *Patchset) error {
|
|
||||||
var err error
|
|
||||||
data, err := pset.Marshal()
|
|
||||||
if err != nil {
|
|
||||||
log.Info("proto.Marshal() pset(len) error", len(data), err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
now := time.Now()
|
|
||||||
timestamp := now.Format("2006.01.02.150405") // bummer. other date doesn't work?
|
|
||||||
cfgfile := "patchset/patchset." + timestamp + ".pb"
|
|
||||||
log.Info("proto.Marshal() pset(len)", len(data))
|
|
||||||
configWrite(cfgfile, data)
|
|
||||||
|
|
||||||
return errors.New("don't know how to send yet")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Forge) SubmitDevelPatchSet(name string) (*Patchset, error) {
|
|
||||||
pset, err := f.MakeDevelPatchSet(name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err := f.submitPatchset(pset); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return pset, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Forge) submitPatchset(pset *Patchset) error {
|
|
||||||
msg, err := pset.Marshal()
|
|
||||||
if err != nil {
|
|
||||||
log.Info("proto.Marshal() failed:", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
log.Info("proto.Marshal() msg len", len(msg))
|
|
||||||
body, err := f.HttpPost("rm this", "patchset", msg)
|
|
||||||
if err != nil {
|
|
||||||
log.Info("httpPost() failed:", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
log.Info("HTTP: proto.Marshal() sent", len(msg), "ok and got back", len(body))
|
|
||||||
|
|
||||||
newpb := NewPatches()
|
|
||||||
if err := newpb.Unmarshal(body); err != nil {
|
|
||||||
cfcheck := string(body[0:100])
|
|
||||||
if strings.Contains(cfcheck, "<title>Just a moment...</title>") {
|
|
||||||
return log.Errorf("Cloudflare throttled this attempt to submit. TODO: fix this")
|
|
||||||
} else {
|
|
||||||
log.Infof("forged DID NOT SEND BACK PROTOBUF len(body)=%d %s (TODO: look for failure on cloudflare 'is human' check here)\n", len(body), body[0:100])
|
|
||||||
// log.Infof("TODO: try to identify data here len(body)=%d body[0:40]=%s\n", len(body), body[0:40])
|
|
||||||
// log.Info("BODY START:", body[0:10], string(body[0:10]))
|
|
||||||
// log.Info(string(body))
|
|
||||||
// if err := newpb.UnmarshalTEXT(body[2:]); err == nil {
|
|
||||||
// log.Info("wow, that did work. newpb.Len() =", newpb.Len())
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("Total patches sent ok:", newpb.Len())
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *Forge) SubmitPatchesNew(pset *Patches, urlpath string) (*Patches, error) {
|
|
||||||
msg, err := pset.Marshal()
|
|
||||||
if err != nil {
|
|
||||||
log.Info("proto.Marshal() failed:", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Info("proto.Marshal() msg len", len(msg))
|
|
||||||
body, err := f.HttpPost("rm this", urlpath, msg)
|
|
||||||
if err != nil {
|
|
||||||
log.Info("httpPost() failed:", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
log.Info("HTTP: proto.Marshal() sent", len(msg), "ok and got back", len(body))
|
|
||||||
|
|
||||||
newpb := NewPatches()
|
|
||||||
if err := newpb.Unmarshal(body); err != nil {
|
|
||||||
cfcheck := string(body[0:100])
|
|
||||||
if strings.Contains(cfcheck, "<title>Just a moment...</title>") {
|
|
||||||
return nil, log.Errorf("Cloudflare throttled this attempt to submit. TODO: fix this")
|
|
||||||
} else {
|
|
||||||
log.Infof("forged DID NOT SEND BACK PROTOBUF len(body)=%d %s (TODO: look for failure on cloudflare 'is human' check here)\n", len(body), body[0:100])
|
|
||||||
// log.Infof("TODO: try to identify data here len(body)=%d body[0:40]=%s\n", len(body), body[0:40])
|
|
||||||
// log.Info("BODY START:", body[0:10], string(body[0:10]))
|
|
||||||
// log.Info(string(body))
|
|
||||||
// if err := newpb.UnmarshalTEXT(body[2:]); err == nil {
|
|
||||||
// log.Info("wow, that did work. newpb.Len() =", newpb.Len())
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("Total patches sent ok:", newpb.Len())
|
|
||||||
return newpb, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func loadFile(filename string) ([]byte, error) {
|
|
||||||
fullname := filepath.Join(os.Getenv("FORGE_CONFIG"), filename)
|
|
||||||
data, err := os.ReadFile(fullname)
|
|
||||||
if errors.Is(err, os.ErrNotExist) {
|
|
||||||
// if file does not exist, just return nil. this
|
|
||||||
// will cause ConfigLoad() to try the next config file like "forge.text"
|
|
||||||
// because the user might want to edit the .config by hand
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
// log.Info("open config file :", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return data, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func configWrite(filename string, data []byte) error {
|
|
||||||
fullname := filepath.Join(os.Getenv("FORGE_CONFIG"), filename)
|
|
||||||
|
|
||||||
cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
|
|
||||||
defer cfgfile.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Warn("open config file :", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
cfgfile.Write(data)
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package forgepb
|
||||||
|
|
||||||
|
// makes a new patches protobuf. These are all the patches on your machine.
|
||||||
|
func NewPatches() *Patches {
|
||||||
|
x := new(Patches)
|
||||||
|
x.Uuid = "2679065e-c81d-4a00-aca4-03c158a834fb"
|
||||||
|
x.Version = "v2.0.0 go.wit.com/lib/protobuf/forgepb"
|
||||||
|
return x
|
||||||
|
}
|
Loading…
Reference in New Issue