cli: move config path flag to options package
This commit is contained in:
parent
4616600636
commit
37571162a0
3 changed files with 25 additions and 19 deletions
|
@ -9,6 +9,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/config"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
||||||
|
@ -52,6 +53,12 @@ var Historic = cli.StringFlag{
|
||||||
Usage: "Use historic state (height, block hash or state root hash)",
|
Usage: "Use historic state (height, block hash or state root hash)",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Config is a flag for commands that use node configuration.
|
||||||
|
var Config = cli.StringFlag{
|
||||||
|
Name: "config-path",
|
||||||
|
Usage: "path to directory with configuration files",
|
||||||
|
}
|
||||||
|
|
||||||
var errNoEndpoint = errors.New("no RPC endpoint specified, use option '--" + RPCEndpointFlag + "' or '-r'")
|
var errNoEndpoint = errors.New("no RPC endpoint specified, use option '--" + RPCEndpointFlag + "' or '-r'")
|
||||||
var errInvalidHistoric = errors.New("invalid 'historic' parameter, neither a block number, nor a block/state hash")
|
var errInvalidHistoric = errors.New("invalid 'historic' parameter, neither a block number, nor a block/state hash")
|
||||||
|
|
||||||
|
@ -128,3 +135,13 @@ func GetRPCWithInvoker(gctx context.Context, ctx *cli.Context, signers []transac
|
||||||
}
|
}
|
||||||
return c, inv, err
|
return c, inv, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetConfigFromContext looks at the path and the mode flags in the given config and
|
||||||
|
// returns an appropriate config.
|
||||||
|
func GetConfigFromContext(ctx *cli.Context) (config.Config, error) {
|
||||||
|
configPath := "./config"
|
||||||
|
if argCp := ctx.String("config-path"); argCp != "" {
|
||||||
|
configPath = argCp
|
||||||
|
}
|
||||||
|
return config.Load(configPath, GetNetwork(ctx))
|
||||||
|
}
|
||||||
|
|
|
@ -43,9 +43,7 @@ var (
|
||||||
|
|
||||||
// NewCommands returns 'node' command.
|
// NewCommands returns 'node' command.
|
||||||
func NewCommands() []cli.Command {
|
func NewCommands() []cli.Command {
|
||||||
var cfgFlags = []cli.Flag{
|
cfgFlags := []cli.Flag{options.Config}
|
||||||
cli.StringFlag{Name: "config-path", Usage: "path to directory with configuration files"},
|
|
||||||
}
|
|
||||||
cfgFlags = append(cfgFlags, options.Network...)
|
cfgFlags = append(cfgFlags, options.Network...)
|
||||||
var cfgWithCountFlags = make([]cli.Flag, len(cfgFlags))
|
var cfgWithCountFlags = make([]cli.Flag, len(cfgFlags))
|
||||||
copy(cfgWithCountFlags, cfgFlags)
|
copy(cfgWithCountFlags, cfgFlags)
|
||||||
|
@ -128,16 +126,6 @@ func newGraceContext() context.Context {
|
||||||
return ctx
|
return ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
// getConfigFromContext looks at the path and the mode flags in the given config and
|
|
||||||
// returns an appropriate config.
|
|
||||||
func getConfigFromContext(ctx *cli.Context) (config.Config, error) {
|
|
||||||
configPath := "./config"
|
|
||||||
if argCp := ctx.String("config-path"); argCp != "" {
|
|
||||||
configPath = argCp
|
|
||||||
}
|
|
||||||
return config.Load(configPath, options.GetNetwork(ctx))
|
|
||||||
}
|
|
||||||
|
|
||||||
// handleLoggingParams reads logging parameters.
|
// handleLoggingParams reads logging parameters.
|
||||||
// If a user selected debug level -- function enables it.
|
// If a user selected debug level -- function enables it.
|
||||||
// If logPath is configured -- function creates a dir and a file for logging.
|
// If logPath is configured -- function creates a dir and a file for logging.
|
||||||
|
@ -233,7 +221,7 @@ func dumpDB(ctx *cli.Context) error {
|
||||||
if err := cmdargs.EnsureNone(ctx); err != nil {
|
if err := cmdargs.EnsureNone(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cfg, err := getConfigFromContext(ctx)
|
cfg, err := options.GetConfigFromContext(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(err, 1)
|
||||||
}
|
}
|
||||||
|
@ -286,7 +274,7 @@ func restoreDB(ctx *cli.Context) error {
|
||||||
if err := cmdargs.EnsureNone(ctx); err != nil {
|
if err := cmdargs.EnsureNone(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cfg, err := getConfigFromContext(ctx)
|
cfg, err := options.GetConfigFromContext(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -472,7 +460,7 @@ func startServer(ctx *cli.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := getConfigFromContext(ctx)
|
cfg, err := options.GetConfigFromContext(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cli.NewExitError(err, 1)
|
return cli.NewExitError(err, 1)
|
||||||
}
|
}
|
||||||
|
@ -549,7 +537,7 @@ Main:
|
||||||
cancel()
|
cancel()
|
||||||
case sig := <-sigCh:
|
case sig := <-sigCh:
|
||||||
log.Info("signal received", zap.Stringer("name", sig))
|
log.Info("signal received", zap.Stringer("name", sig))
|
||||||
cfgnew, err := getConfigFromContext(ctx)
|
cfgnew, err := options.GetConfigFromContext(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warn("can't reread the config file, signal ignored", zap.Error(err))
|
log.Warn("can't reread the config file, signal ignored", zap.Error(err))
|
||||||
break // Continue working.
|
break // Continue working.
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/nspcc-dev/neo-go/cli/options"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/config"
|
"github.com/nspcc-dev/neo-go/pkg/config"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/storage/dbconfig"
|
"github.com/nspcc-dev/neo-go/pkg/core/storage/dbconfig"
|
||||||
|
@ -32,7 +33,7 @@ func TestGetConfigFromContext(t *testing.T) {
|
||||||
set.String("config-path", "../../config", "")
|
set.String("config-path", "../../config", "")
|
||||||
set.Bool("testnet", true, "")
|
set.Bool("testnet", true, "")
|
||||||
ctx := cli.NewContext(cli.NewApp(), set, nil)
|
ctx := cli.NewContext(cli.NewApp(), set, nil)
|
||||||
cfg, err := getConfigFromContext(ctx)
|
cfg, err := options.GetConfigFromContext(ctx)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, netmode.TestNet, cfg.ProtocolConfiguration.Magic)
|
require.Equal(t, netmode.TestNet, cfg.ProtocolConfiguration.Magic)
|
||||||
}
|
}
|
||||||
|
@ -101,7 +102,7 @@ func TestInitBCWithMetrics(t *testing.T) {
|
||||||
set.Bool("testnet", true, "")
|
set.Bool("testnet", true, "")
|
||||||
set.Bool("debug", true, "")
|
set.Bool("debug", true, "")
|
||||||
ctx := cli.NewContext(cli.NewApp(), set, nil)
|
ctx := cli.NewContext(cli.NewApp(), set, nil)
|
||||||
cfg, err := getConfigFromContext(ctx)
|
cfg, err := options.GetConfigFromContext(ctx)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
logger, closer, err := handleLoggingParams(ctx, cfg.ApplicationConfiguration)
|
logger, closer, err := handleLoggingParams(ctx, cfg.ApplicationConfiguration)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
Loading…
Reference in a new issue