golang.org/x/build@v0.0.0-20240506185731-218518f32b70/maintner/maintwatch/maintwatch.go (about) 1 // Copyright 2019 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // The maintwatch commands tails the maintner mutation log. 6 package main 7 8 import ( 9 "context" 10 "flag" 11 "fmt" 12 "log" 13 "os" 14 "time" 15 16 "github.com/golang/protobuf/proto" 17 "golang.org/x/build/maintner" 18 "golang.org/x/build/maintner/godata" 19 ) 20 21 var server = flag.String("server", godata.Server, "maintner server's /logs URL") 22 23 func main() { 24 flag.Parse() 25 26 tm := proto.TextMarshaler{Compact: false} 27 for { 28 err := maintner.TailNetworkMutationSource(context.Background(), *server, func(e maintner.MutationStreamEvent) error { 29 if e.Err != nil { 30 log.Printf("# ignoring err: %v\n", e.Err) 31 time.Sleep(5 * time.Second) 32 return nil 33 } 34 fmt.Println() 35 tm.Marshal(os.Stdout, e.Mutation) 36 return nil 37 }) 38 log.Printf("tail error: %v; restarting\n", err) 39 time.Sleep(time.Second) 40 } 41 }