From 59a667130ca89984a8883d5b5a2a0f8312b621a2 Mon Sep 17 00:00:00 2001 From: Asim Date: Fri, 1 Jan 2016 02:45:15 +0000 Subject: [PATCH] Update help printer --- cmd/cmd.go | 15 +++++++++++++++ options.go | 9 ++++++++- service.go | 5 +++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 30fd85c7..4c08970f 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -3,6 +3,7 @@ package cmd import ( "flag" "fmt" + "io" "math/rand" "os" "strings" @@ -160,6 +161,11 @@ var ( func init() { rand.Seed(time.Now().Unix()) + help := cli.HelpPrinter + cli.HelpPrinter = func(writer io.Writer, templ string, data interface{}) { + help(writer, templ, data) + os.Exit(0) + } } func newCmd(opts ...Option) Cmd { @@ -174,6 +180,10 @@ func newCmd(opts ...Option) Cmd { o(&options) } + if len(options.Description) == 0 { + options.Description = "a go-micro service" + } + cmd := new(cmd) cmd.opts = options cmd.app = cli.NewApp() @@ -183,6 +193,11 @@ func newCmd(opts ...Option) Cmd { cmd.app.Before = cmd.Before cmd.app.Flags = DefaultFlags cmd.app.Action = func(c *cli.Context) {} + + if len(options.Version) == 0 { + cmd.app.HideVersion = true + } + return cmd } diff --git a/options.go b/options.go index 159873b4..9667d91b 100644 --- a/options.go +++ b/options.go @@ -28,7 +28,6 @@ type Options struct { func newOptions(opts ...Option) Options { opt := Options{ Broker: broker.DefaultBroker, - Cmd: cmd.DefaultCmd, Client: client.DefaultClient, Server: server.DefaultServer, Registry: registry.DefaultRegistry, @@ -40,6 +39,14 @@ func newOptions(opts ...Option) Options { o(&opt) } + // New Command + if opt.Cmd == nil { + opt.Cmd = cmd.NewCmd( + cmd.Name(opt.Server.Options().Name), + cmd.Version(opt.Server.Options().Version), + ) + } + return opt } diff --git a/service.go b/service.go index 151f056d..6a82d8d0 100644 --- a/service.go +++ b/service.go @@ -32,6 +32,11 @@ func newService(opts ...Option) Service { func (s *service) Init(opts ...Option) { s.opts.Cmd.Init() + + for _, o := range opts { + o(&s.opts) + } + s = newService(opts...).(*service) }