2024-12-14 13:12:42 -06:00
|
|
|
// Copyright 2024 WIT.COM Inc Licensed GPL 3.0
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-12-27 22:27:19 -06:00
|
|
|
"os"
|
|
|
|
"path/filepath"
|
2024-12-14 13:12:42 -06:00
|
|
|
"strings"
|
|
|
|
|
|
|
|
"go.wit.com/lib/protobuf/forgepb"
|
|
|
|
"go.wit.com/log"
|
|
|
|
)
|
|
|
|
|
|
|
|
func sendPatches(pset *forgepb.Patchs) error {
|
|
|
|
var url string
|
|
|
|
url = me.urlbase + "/patchset"
|
|
|
|
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 := httpPost(url, msg)
|
|
|
|
if err != nil {
|
|
|
|
log.Info("httpPost() failed:", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
test := strings.TrimSpace(string(body))
|
|
|
|
// log.Info("virtigo returned body:", test)
|
|
|
|
for _, line := range strings.Split(test, "\n") {
|
|
|
|
log.Info("got back:", line)
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-12-14 14:09:15 -06:00
|
|
|
func listPatches() error {
|
|
|
|
var url string
|
|
|
|
url = me.urlbase + "/patchsetlist"
|
|
|
|
body, err := httpPost(url, nil)
|
|
|
|
if err != nil {
|
|
|
|
log.Info("httpPost() failed:", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
var last string
|
|
|
|
test := strings.TrimSpace(string(body))
|
|
|
|
for _, line := range strings.Split(test, "\n") {
|
|
|
|
log.Info("patchset:", line)
|
|
|
|
last = strings.TrimSpace(line)
|
|
|
|
}
|
|
|
|
getPatch(last)
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-12-24 01:54:33 -06:00
|
|
|
func doRegister(newurl string) error {
|
|
|
|
var url string
|
|
|
|
url = me.urlbase + "/register?url=" + newurl
|
|
|
|
body, err := httpPost(url, nil)
|
|
|
|
if err != nil {
|
|
|
|
log.Info("httpPost() failed:", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
test := strings.TrimSpace(string(body))
|
|
|
|
for _, line := range strings.Split(test, "\n") {
|
|
|
|
line = strings.TrimSpace(line)
|
|
|
|
log.Info("server returned:", line)
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-12-14 14:09:15 -06:00
|
|
|
func getPatch(pbfile string) error {
|
|
|
|
url := me.urlbase + "/patchsetget?filename=" + pbfile
|
|
|
|
log.Info("getPatch() url", url)
|
|
|
|
body, err := httpPost(url, nil)
|
|
|
|
if err != nil {
|
|
|
|
log.Info("httpPost() failed:", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
log.Info("getPatch() len(body)", len(body))
|
2024-12-27 22:27:19 -06:00
|
|
|
var pset *forgepb.Patchs
|
|
|
|
pset = new(forgepb.Patchs)
|
|
|
|
err = pset.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()
|
2024-12-14 14:09:15 -06:00
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-12-24 03:35:19 -06:00
|
|
|
func sendDevelDiff(name string) {
|
2024-12-14 13:12:42 -06:00
|
|
|
pset, err := me.forge.MakeDevelPatchSet()
|
|
|
|
if err != nil {
|
|
|
|
badExit(err)
|
|
|
|
}
|
2024-12-24 03:35:19 -06:00
|
|
|
pset.Name = name
|
2024-12-14 13:12:42 -06:00
|
|
|
if err := sendPatches(pset); err != nil {
|
|
|
|
badExit(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func sendMasterDiff() {
|
|
|
|
pset, err := me.forge.MakeMasterPatchSet()
|
|
|
|
if err != nil {
|
|
|
|
badExit(err)
|
|
|
|
}
|
|
|
|
all := pset.SortByFilename()
|
|
|
|
for all.Scan() {
|
|
|
|
p := all.Next()
|
|
|
|
log.Info("read in patch:", p.Filename)
|
|
|
|
}
|
|
|
|
err = me.forge.SendPatchSet(pset)
|
|
|
|
if err != nil {
|
|
|
|
badExit(err)
|
|
|
|
}
|
|
|
|
}
|