mirror of
https://github.com/tendermint/tendermint.git
synced 2026-08-27 19:37:08 +00:00
## Description - Add `context.Context` to Privval interface This pr does not introduce context into our custom privval connection protocol because this will be removed in the next release. When this pr is released.
86 lines
2.1 KiB
Go
86 lines
2.1 KiB
Go
package commands
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
|
|
cfg "github.com/tendermint/tendermint/config"
|
|
"github.com/tendermint/tendermint/libs/cli"
|
|
tmflags "github.com/tendermint/tendermint/libs/cli/flags"
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
)
|
|
|
|
var (
|
|
config = cfg.DefaultConfig()
|
|
logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
|
ctxTimeout = 4 * time.Second
|
|
)
|
|
|
|
func init() {
|
|
registerFlagsRootCmd(RootCmd)
|
|
}
|
|
|
|
func registerFlagsRootCmd(cmd *cobra.Command) {
|
|
cmd.PersistentFlags().String("log-level", config.LogLevel, "log level")
|
|
}
|
|
|
|
// ParseConfig retrieves the default environment configuration,
|
|
// sets up the Tendermint root and ensures that the root exists
|
|
func ParseConfig() (*cfg.Config, error) {
|
|
conf := cfg.DefaultConfig()
|
|
err := viper.Unmarshal(conf)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
conf.SetRoot(conf.RootDir)
|
|
cfg.EnsureRoot(conf.RootDir)
|
|
if err := conf.ValidateBasic(); err != nil {
|
|
return nil, fmt.Errorf("error in config file: %v", err)
|
|
}
|
|
return conf, nil
|
|
}
|
|
|
|
// RootCmd is the root command for Tendermint core.
|
|
var RootCmd = &cobra.Command{
|
|
Use: "tendermint",
|
|
Short: "BFT state machine replication for applications in any programming languages",
|
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) {
|
|
if cmd.Name() == VersionCmd.Name() {
|
|
return nil
|
|
}
|
|
|
|
config, err = ParseConfig()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if config.LogFormat == cfg.LogFormatJSON {
|
|
logger = log.NewTMJSONLogger(log.NewSyncWriter(os.Stdout))
|
|
}
|
|
|
|
logger, err = tmflags.ParseLogLevel(config.LogLevel, logger, cfg.DefaultLogLevel)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if viper.GetBool(cli.TraceFlag) {
|
|
logger = log.NewTracingLogger(logger)
|
|
}
|
|
|
|
logger = logger.With("module", "main")
|
|
return nil
|
|
},
|
|
}
|
|
|
|
// deprecateSnakeCase is a util function for 0.34.1. Should be removed in 0.35
|
|
func deprecateSnakeCase(cmd *cobra.Command, args []string) {
|
|
if strings.Contains(cmd.CalledAs(), "_") {
|
|
fmt.Println("Deprecated: snake_case commands will be replaced by hyphen-case commands in the next major release")
|
|
}
|
|
}
|