Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
1.9 kB · 42 lines
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243package main
import ( "bytes" "fmt" "os")
const pipelinePath = "api/org_tangled/cipipeline.go"
func replaceOnce(source, old, new []byte) []byte { if bytes.Count(source, old) != 1 { panic(fmt.Sprintf("expected one generated match, got %d", bytes.Count(source, old))) } return bytes.Replace(source, old, new, 1)}
func main() { source, err := os.ReadFile(pipelinePath) if err != nil { panic(err) } source = replaceOnce(source, []byte("type CiPipeline_Trigger struct {\n\tEventPush *EventPush\n\tEventPullRequest *EventPullRequest\n\tCiTriggerManual *CiTriggerManual\n}"), []byte("type CiPipeline_Trigger struct {\n\tEventPush *EventPush\n\tEventPullRequest *EventPullRequest\n\tCiTriggerManual *CiTriggerManual\n\tUnknown json.RawMessage\n}"), ) source = replaceOnce(source, []byte("\tif t.CiTriggerManual != nil {\n\t\tt.CiTriggerManual.LexiconTypeID = \"org.tangled.ci.trigger.manual\"\n\t\treturn json.Marshal(t.CiTriggerManual)\n\t}\n\treturn nil, fmt.Errorf(\"cannot marshal empty enum\")"), []byte("\tif t.CiTriggerManual != nil {\n\t\tt.CiTriggerManual.LexiconTypeID = \"org.tangled.ci.trigger.manual\"\n\t\treturn json.Marshal(t.CiTriggerManual)\n\t}\n\tif t.Unknown != nil {\n\t\treturn t.Unknown, nil\n\t}\n\treturn nil, fmt.Errorf(\"cannot marshal empty enum\")"), ) source = replaceOnce(source, []byte("\ttyp, err := util.TypeExtract(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch typ {"), []byte("\ttyp, err := util.TypeExtract(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*t = CiPipeline_Trigger{}\n\tswitch typ {"), ) source = replaceOnce(source, []byte("\tdefault:\n\t\treturn nil\n\t}\n}"), []byte("\tdefault:\n\t\tt.Unknown = append(t.Unknown[:0], b...)\n\t\treturn nil\n\t}\n}"), ) if err := os.WriteFile(pipelinePath, source, 0o644); err != nil { panic(err) }}