hermez-node/test/proofserver/cli/main.go
test/proofserver/cli/main.goRaw
1package main
2
3import (
4 "context"
5 "flag"
6 "log"
7 "os"
8 "os/signal"
9 "sync"
10 "time"
11
12 "github.com/hermeznetwork/hermez-node/test/proofserver"
13)
14
15func main() {
16 var addr string
17 flag.StringVar(&addr, "a", "localhost:3000", "listen address")
18 var provingDuration time.Duration
19 flag.DurationVar(&provingDuration, "d", 2*time.Second, "proving time duration") //nolint:gomnd
20 flag.Parse()
21
22 mock := proofserver.NewMock(addr, provingDuration)
23 ctx, cancel := context.WithCancel(context.Background())
24 var wg sync.WaitGroup
25 wg.Add(1)
26 go func() {
27 if err := mock.Run(ctx); err != nil {
28 log.Fatal(err)
29 }
30 wg.Done()
31 }()
32
33 stopCh := make(chan interface{})
34 // catch ^C to send the stop signal
35 ossig := make(chan os.Signal, 1)
36 signal.Notify(ossig, os.Interrupt)
37 go func() {
38 for sig := range ossig {
39 if sig == os.Interrupt {
40 stopCh <- nil
41 }
42 }
43 }()
44 <-stopCh
45 cancel()
46 wg.Wait()
47}