From 601cf7aaecfa8fb0bb72beb1d656d8c517e27d86 Mon Sep 17 00:00:00 2001 From: WangXiangUSTC Date: Mon, 6 May 2019 10:41:45 +0800 Subject: [PATCH 1/2] refine log output when use help command --- binlogctl/config.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/binlogctl/config.go b/binlogctl/config.go index d0e3a84cd..2d3cb3829 100644 --- a/binlogctl/config.go +++ b/binlogctl/config.go @@ -17,6 +17,7 @@ import ( "crypto/tls" "flag" "fmt" + "os" "github.com/pingcap/errors" "github.com/pingcap/tidb-binlog/pkg/flags" @@ -80,6 +81,11 @@ type Config struct { func NewConfig() *Config { cfg := &Config{} cfg.FlagSet = flag.NewFlagSet("binlogctl", flag.ContinueOnError) + fs := cfg.FlagSet + fs.Usage = func() { + fmt.Fprintln(os.Stderr, "Usage of binlogctl:") + fs.PrintDefaults() + } cfg.FlagSet.StringVar(&cfg.Command, "cmd", "pumps", "operator: \"generate_meta\", \"pumps\", \"drainers\", \"update-pump\", \"update-drainer\", \"pause-pump\", \"pause-drainer\", \"offline-pump\", \"offline-drainer\"") cfg.FlagSet.StringVar(&cfg.NodeID, "node-id", "", "id of node, use to update some node with operation update-pump, update-drainer, pause-pump, pause-drainer, offline-pump and offline-drainer") @@ -99,9 +105,14 @@ func NewConfig() *Config { func (cfg *Config) Parse(args []string) error { // parse first to get config file err := cfg.FlagSet.Parse(args) - if err != nil { - return errors.Trace(err) + switch err { + case nil: + case flag.ErrHelp: + os.Exit(0) + default: + os.Exit(2) } + // parse command line options if len(cfg.FlagSet.Args()) > 0 { return errors.Errorf("'%s' is not a valid flag", cfg.FlagSet.Arg(0)) From f6cf441954d66bf4ec79578d32d971b8321f530e Mon Sep 17 00:00:00 2001 From: WangXiangUSTC Date: Mon, 6 May 2019 10:47:56 +0800 Subject: [PATCH 2/2] remove useless code --- binlogctl/config.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/binlogctl/config.go b/binlogctl/config.go index 2d3cb3829..f58ca6940 100644 --- a/binlogctl/config.go +++ b/binlogctl/config.go @@ -81,11 +81,6 @@ type Config struct { func NewConfig() *Config { cfg := &Config{} cfg.FlagSet = flag.NewFlagSet("binlogctl", flag.ContinueOnError) - fs := cfg.FlagSet - fs.Usage = func() { - fmt.Fprintln(os.Stderr, "Usage of binlogctl:") - fs.PrintDefaults() - } cfg.FlagSet.StringVar(&cfg.Command, "cmd", "pumps", "operator: \"generate_meta\", \"pumps\", \"drainers\", \"update-pump\", \"update-drainer\", \"pause-pump\", \"pause-drainer\", \"offline-pump\", \"offline-drainer\"") cfg.FlagSet.StringVar(&cfg.NodeID, "node-id", "", "id of node, use to update some node with operation update-pump, update-drainer, pause-pump, pause-drainer, offline-pump and offline-drainer")