github.com/cgcardona/r-subnet-evm@v0.1.5/cmd/simulator/main/main.go (about) 1 // (c) 2022, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package main 5 6 import ( 7 "context" 8 "errors" 9 "fmt" 10 "os" 11 12 "github.com/cgcardona/r-subnet-evm/cmd/simulator/config" 13 "github.com/cgcardona/r-subnet-evm/cmd/simulator/load" 14 "github.com/ethereum/go-ethereum/log" 15 "github.com/spf13/pflag" 16 ) 17 18 func main() { 19 fs := config.BuildFlagSet() 20 v, err := config.BuildViper(fs, os.Args[1:]) 21 if errors.Is(err, pflag.ErrHelp) { 22 os.Exit(0) 23 } 24 25 if err != nil { 26 fmt.Printf("couldn't build viper: %s\n", err) 27 os.Exit(1) 28 } 29 30 if err != nil { 31 fmt.Printf("couldn't configure flags: %s\n", err) 32 os.Exit(1) 33 } 34 35 if v.GetBool(config.VersionKey) { 36 fmt.Printf("%s\n", config.Version) 37 os.Exit(0) 38 } 39 40 logLevel, err := log.LvlFromString(v.GetString(config.LogLevelKey)) 41 if err != nil { 42 fmt.Printf("couldn't parse log level: %s\n", err) 43 os.Exit(1) 44 } 45 log.Root().SetHandler(log.LvlFilterHandler(logLevel, log.StreamHandler(os.Stderr, log.TerminalFormat(true)))) 46 47 config, err := config.BuildConfig(v) 48 if err != nil { 49 fmt.Printf("%s\n", err) 50 os.Exit(1) 51 } 52 if err := load.ExecuteLoader(context.Background(), config); err != nil { 53 fmt.Printf("load execution failed: %s\n", err) 54 os.Exit(1) 55 } 56 }