Some checks failed
Tests and linters / Run gofumpt (pull_request) Successful in 3m21s
Pre-commit hooks / Pre-commit (pull_request) Successful in 4m10s
Tests and linters / Tests (pull_request) Successful in 4m16s
DCO action / DCO (pull_request) Failing after 4m29s
Vulncheck / Vulncheck (pull_request) Successful in 5m44s
Tests and linters / Tests with -race (pull_request) Successful in 6m13s
Build / Build Components (pull_request) Successful in 6m23s
Tests and linters / Staticcheck (pull_request) Successful in 6m25s
Tests and linters / gopls check (pull_request) Successful in 6m27s
Tests and linters / Lint (pull_request) Successful in 7m27s
Currently, we allow using `--local-dump` in `morph init` command. We also have this flag in other commands, but no `--protocol` which is also needed. And in new command we do not have the ability to use local dump at all. This commit makes it possible to work either with an RPC or with local-dump in every command. Refs #1035. Refs TrueCloudLab/frostfs-dev-env#42. Writing gopatch this time was really satisfying, btw: ``` @@ var flags expression @@ -flags.StringP(commonflags.EndpointFlag, ...) +commonflags.InitRPC(flags) @@ var flags expression @@ -_ = viper.BindPFlag(commonflags.EndpointFlag, flags.Lookup(...)) +commonflags.BindRPC(flags) ``` Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
21 lines
739 B
Go
21 lines
739 B
Go
package commonflags
|
|
|
|
import (
|
|
"github.com/spf13/pflag"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// InitRPC inits common flags for storage node services.
|
|
func InitRPC(ff *pflag.FlagSet) {
|
|
ff.StringP(EndpointFlag, EndpointFlagShort, "", EndpointFlagDesc)
|
|
ff.String(ProtoConfigPath, "", "Path to the consensus node configuration")
|
|
ff.String(LocalDumpFlag, "", "Path to the blocks dump file")
|
|
}
|
|
|
|
// BindRPC binds API flags of storage node services to the viper.
|
|
func BindRPC(ff *pflag.FlagSet) {
|
|
// LocalDumpFlag is left unbind intentionally:
|
|
// it serves as an explicit signal to use local dump instead of a remote RPC.
|
|
_ = viper.BindPFlag(EndpointFlag, ff.Lookup(EndpointFlag))
|
|
_ = viper.BindPFlag(ProtoConfigPath, ff.Lookup(ProtoConfigPath))
|
|
}
|