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  }