|
|
package main
import ( "context" "flag" "log" "os" "os/signal" "sync" "time"
"github.com/hermeznetwork/hermez-node/test/proofserver" )
func main() { var addr string flag.StringVar(&addr, "a", "localhost:3000", "listen address") var provingDuration time.Duration flag.DurationVar(&provingDuration, "d", 2*time.Second, "proving time duration") //nolint:gomnd
flag.Parse()
mock := proofserver.NewMock(addr, provingDuration) ctx, cancel := context.WithCancel(context.Background()) var wg sync.WaitGroup wg.Add(1) go func() { if err := mock.Run(ctx); err != nil { log.Fatal(err) } wg.Done() }()
stopCh := make(chan interface{}) // catch ^C to send the stop signal
ossig := make(chan os.Signal, 1) signal.Notify(ossig, os.Interrupt) go func() { for sig := range ossig { if sig == os.Interrupt { stopCh <- nil } } }() <-stopCh cancel() wg.Wait() }
|