// Copyright 2024 WIT.COM Inc Licensed GPL 3.0 package main import ( "os" "path/filepath" "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 } 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 } 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 } 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)) 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() return nil } func sendDevelDiff(name string) { pset, err := me.forge.MakeDevelPatchSet() if err != nil { badExit(err) } pset.Name = name 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) } }