// Copyright 2024 WIT.COM Inc Licensed GPL 3.0 package main import ( "fmt" "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) } parts := strings.Fields(last) getPatch(parts[0]) 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() doit(body) return nil } func sendDevelDiff(name string) error { pset, err := me.forge.MakeDevelPatchSet() if err != nil { return err } pset.Name = name if os.Getenv("GIT_AUTHOR_NAME") == "" { return fmt.Errorf("GIT_AUTHOR_NAME not set") } else { pset.GitAuthorName = os.Getenv("GIT_AUTHOR_NAME") } if os.Getenv("GIT_AUTHOR_EMAIL") == "" { return fmt.Errorf("GIT_AUTHOR_EMAIL not set") } else { pset.GitAuthorEmail = os.Getenv("GIT_AUTHOR_EMAIL") } if err := sendPatches(pset); err != nil { return err } return nil } 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) } }