From 2b9a6f9aeba4281de0f5e7eb5afe9b17368eec8f Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Mon, 1 Nov 2021 14:34:09 +0000 Subject: [PATCH] flatten cli (#2332) --- cmd/micro/{cmd => }/cli/call/call.go | 6 ++--- cmd/micro/{cmd/cmd.go => cli/cli.go} | 24 ++++++++--------- cmd/micro/{cmd => }/cli/describe/describe.go | 6 ++--- cmd/micro/{cmd => }/cli/describe/service.go | 4 +-- cmd/micro/{cmd => }/cli/generate/generate.go | 4 +-- cmd/micro/{cmd => }/cli/new/new.go | 10 ++++---- cmd/micro/{cmd => }/cli/run/run.go | 8 +++--- cmd/micro/{cmd => }/cli/services/services.go | 6 ++--- cmd/micro/{cmd => }/cli/stream/bidi.go | 0 cmd/micro/{cmd => }/cli/stream/server.go | 0 cmd/micro/cli/stream/stream.go | 27 ++++++++++++++++++++ cmd/micro/cmd/cli/cli.go | 11 -------- cmd/micro/cmd/cli/stream/stream.go | 27 -------------------- cmd/micro/main.go | 12 ++++++--- 14 files changed, 70 insertions(+), 75 deletions(-) rename cmd/micro/{cmd => }/cli/call/call.go (85%) rename cmd/micro/{cmd/cmd.go => cli/cli.go} (83%) rename cmd/micro/{cmd => }/cli/describe/describe.go (71%) rename cmd/micro/{cmd => }/cli/describe/service.go (92%) rename cmd/micro/{cmd => }/cli/generate/generate.go (97%) rename cmd/micro/{cmd => }/cli/new/new.go (91%) rename cmd/micro/{cmd => }/cli/run/run.go (92%) rename cmd/micro/{cmd => }/cli/services/services.go (83%) rename cmd/micro/{cmd => }/cli/stream/bidi.go (100%) rename cmd/micro/{cmd => }/cli/stream/server.go (100%) create mode 100644 cmd/micro/cli/stream/stream.go delete mode 100644 cmd/micro/cmd/cli/cli.go delete mode 100644 cmd/micro/cmd/cli/stream/stream.go diff --git a/cmd/micro/cmd/cli/call/call.go b/cmd/micro/cli/call/call.go similarity index 85% rename from cmd/micro/cmd/cli/call/call.go rename to cmd/micro/cli/call/call.go index b849a652ad..531a0b0cf8 100644 --- a/cmd/micro/cmd/cli/call/call.go +++ b/cmd/micro/cli/call/call.go @@ -9,13 +9,13 @@ import ( "github.com/urfave/cli/v2" "go-micro.dev/v4" "go-micro.dev/v4/client" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" ) func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "call", - Usage: "Call a service, e.g. " + cmd.App().Name + " call helloworld Helloworld.Call '{\"name\": \"John\"}'", + Usage: "Call a service, e.g. " + mcli.App().Name + " call helloworld Helloworld.Call '{\"name\": \"John\"}'", Action: RunCall, }) } diff --git a/cmd/micro/cmd/cmd.go b/cmd/micro/cli/cli.go similarity index 83% rename from cmd/micro/cmd/cmd.go rename to cmd/micro/cli/cli.go index ba60dd8176..301984bb57 100644 --- a/cmd/micro/cmd/cmd.go +++ b/cmd/micro/cli/cli.go @@ -1,4 +1,4 @@ -package cmd +package cli import ( "fmt" @@ -9,21 +9,21 @@ import ( ) var ( - // DefaultCmd is the default, unmodified root command. - DefaultCmd Cmd = NewCmd() + // DefaultCLI is the default, unmodified root command. + DefaultCLI CLI = NewCLI() name string = "micro" description string = "The Go Micro CLI tool" version string = "latest" ) -// Cmd is the interface that wraps the cli app. +// CLI is the interface that wraps the cli app. // -// Cmd embeds the Cmd interface from the go-micro.dev/v4/cmd +// CLI embeds the Cmd interface from the go-micro.dev/v4/cmd // package and adds a Run method. // // Run runs the cli app within this command and exits on error. -type Cmd interface { +type CLI interface { mcmd.Cmd Run() error } @@ -55,31 +55,31 @@ func (c *cmd) Run() error { // DefaultOptions returns the options passed to the default command. func DefaultOptions() mcmd.Options { - return DefaultCmd.Options() + return DefaultCLI.Options() } // App returns the cli app within the default command. func App() *cli.App { - return DefaultCmd.App() + return DefaultCLI.App() } // Register appends commands to the default app. func Register(cmds ...*cli.Command) { - app := DefaultCmd.App() + app := DefaultCLI.App() app.Commands = append(app.Commands, cmds...) } // Run runs the cli app within the default command. On error, it prints the // error message and exits. func Run() { - if err := DefaultCmd.Run(); err != nil { + if err := DefaultCLI.Run(); err != nil { fmt.Println(err.Error()) os.Exit(1) } } -// NewCmd returns a new command. -func NewCmd(opts ...mcmd.Option) Cmd { +// NewCLI returns a new command. +func NewCLI(opts ...mcmd.Option) CLI { options := mcmd.DefaultOptions() // Clear the name, version and description parameters from the default diff --git a/cmd/micro/cmd/cli/describe/describe.go b/cmd/micro/cli/describe/describe.go similarity index 71% rename from cmd/micro/cmd/cli/describe/describe.go rename to cmd/micro/cli/describe/describe.go index 8c605a3ce8..f28af97752 100644 --- a/cmd/micro/cmd/cli/describe/describe.go +++ b/cmd/micro/cli/describe/describe.go @@ -2,7 +2,7 @@ package describe import ( "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" ) var flags []cli.Flag = []cli.Flag{ @@ -14,14 +14,14 @@ var flags []cli.Flag = []cli.Flag{ } func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "describe", Usage: "Describe a resource", Subcommands: []*cli.Command{ { Name: "service", Aliases: []string{"s"}, - Usage: "Describe a service resource, e.g. " + cmd.App().Name + " describe service helloworld", + Usage: "Describe a service resource, e.g. " + mcli.App().Name + " describe service helloworld", Action: Service, Flags: flags, }, diff --git a/cmd/micro/cmd/cli/describe/service.go b/cmd/micro/cli/describe/service.go similarity index 92% rename from cmd/micro/cmd/cli/describe/service.go rename to cmd/micro/cli/describe/service.go index f26cee45b2..0d2682b8e5 100644 --- a/cmd/micro/cmd/cli/describe/service.go +++ b/cmd/micro/cli/describe/service.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" "gopkg.in/yaml.v2" ) @@ -20,7 +20,7 @@ func Service(ctx *cli.Context) error { return cli.ShowSubcommandHelp(ctx) } - r := *cmd.DefaultOptions().Registry + r := *mcli.DefaultOptions().Registry srvs, err := r.GetService(args[0]) if err != nil { return err diff --git a/cmd/micro/cmd/cli/generate/generate.go b/cmd/micro/cli/generate/generate.go similarity index 97% rename from cmd/micro/cmd/cli/generate/generate.go rename to cmd/micro/cli/generate/generate.go index 806e7ac1ee..874f38ee73 100644 --- a/cmd/micro/cmd/cli/generate/generate.go +++ b/cmd/micro/cli/generate/generate.go @@ -7,13 +7,13 @@ import ( "strings" "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" "go-micro.dev/v4/cmd/micro/generator" tmpl "go-micro.dev/v4/cmd/micro/generator/template" ) func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "generate", Usage: "Generate project template files after the fact", Subcommands: []*cli.Command{ diff --git a/cmd/micro/cmd/cli/new/new.go b/cmd/micro/cli/new/new.go similarity index 91% rename from cmd/micro/cmd/cli/new/new.go rename to cmd/micro/cli/new/new.go index 27d3a18c8c..49cd639403 100644 --- a/cmd/micro/cmd/cli/new/new.go +++ b/cmd/micro/cli/new/new.go @@ -7,7 +7,7 @@ import ( "strings" "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" "go-micro.dev/v4/cmd/micro/generator" tmpl "go-micro.dev/v4/cmd/micro/generator/template" ) @@ -29,25 +29,25 @@ var flags []cli.Flag = []cli.Flag{ // NewCommand returns a new new cli command. func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "new", Usage: "Create a project template", Subcommands: []*cli.Command{ { Name: "client", - Usage: "Create a client template, e.g. " + cmd.App().Name + " new client [github.com/auditemarlow/]helloworld", + Usage: "Create a client template, e.g. " + mcli.App().Name + " new client [github.com/auditemarlow/]helloworld", Action: Client, Flags: flags, }, { Name: "function", - Usage: "Create a function template, e.g. " + cmd.App().Name + " new function [github.com/auditemarlow/]helloworld", + Usage: "Create a function template, e.g. " + mcli.App().Name + " new function [github.com/auditemarlow/]helloworld", Action: Function, Flags: flags, }, { Name: "service", - Usage: "Create a service template, e.g. " + cmd.App().Name + " new service [github.com/auditemarlow/]helloworld", + Usage: "Create a service template, e.g. " + mcli.App().Name + " new service [github.com/auditemarlow/]helloworld", Action: Service, Flags: flags, }, diff --git a/cmd/micro/cmd/cli/run/run.go b/cmd/micro/cli/run/run.go similarity index 92% rename from cmd/micro/cmd/cli/run/run.go rename to cmd/micro/cli/run/run.go index 2620ff6337..6475ebba5f 100644 --- a/cmd/micro/cmd/cli/run/run.go +++ b/cmd/micro/cli/run/run.go @@ -9,7 +9,7 @@ import ( "github.com/fsnotify/fsnotify" "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" "go-micro.dev/v4/runtime" "go-micro.dev/v4/runtime/local/git" ) @@ -34,9 +34,9 @@ var ( ) func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "run", - Usage: "Build and run a service continuously, e.g. " + cmd.App().Name + " run [github.com/auditemarlow/helloworld]", + Usage: "Build and run a service continuously, e.g. " + mcli.App().Name + " run [github.com/auditemarlow/helloworld]", Flags: flags, Action: Run, }) @@ -66,7 +66,7 @@ func Run(ctx *cli.Context) error { command := strings.TrimSpace(ctx.String("command")) args := strings.TrimSpace(ctx.String("args")) - r := *cmd.DefaultCmd.Options().Runtime + r := *mcli.DefaultCLI.Options().Runtime var retries = DefaultRetries if ctx.IsSet("retries") { diff --git a/cmd/micro/cmd/cli/services/services.go b/cmd/micro/cli/services/services.go similarity index 83% rename from cmd/micro/cmd/cli/services/services.go rename to cmd/micro/cli/services/services.go index d12fee3627..4a299a4ff2 100644 --- a/cmd/micro/cmd/cli/services/services.go +++ b/cmd/micro/cli/services/services.go @@ -5,11 +5,11 @@ import ( "sort" "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" + mcli "go-micro.dev/v4/cmd/micro/cli" ) func init() { - cmd.Register(&cli.Command{ + mcli.Register(&cli.Command{ Name: "services", Usage: "List services in the registry", Action: List, @@ -19,7 +19,7 @@ func init() { // List fetches running services from the registry and lists them. Exits on // error. func List(ctx *cli.Context) error { - r := *cmd.DefaultOptions().Registry + r := *mcli.DefaultOptions().Registry srvs, err := r.ListServices() if err != nil { return err diff --git a/cmd/micro/cmd/cli/stream/bidi.go b/cmd/micro/cli/stream/bidi.go similarity index 100% rename from cmd/micro/cmd/cli/stream/bidi.go rename to cmd/micro/cli/stream/bidi.go diff --git a/cmd/micro/cmd/cli/stream/server.go b/cmd/micro/cli/stream/server.go similarity index 100% rename from cmd/micro/cmd/cli/stream/server.go rename to cmd/micro/cli/stream/server.go diff --git a/cmd/micro/cli/stream/stream.go b/cmd/micro/cli/stream/stream.go new file mode 100644 index 0000000000..28c1e2ea3d --- /dev/null +++ b/cmd/micro/cli/stream/stream.go @@ -0,0 +1,27 @@ +package stream + +import ( + "github.com/urfave/cli/v2" + mcli "go-micro.dev/v4/cmd/micro/cli" +) + +func init() { + mcli.Register(&cli.Command{ + Name: "stream", + Usage: "Create a service stream", + Subcommands: []*cli.Command{ + { + Name: "bidi", + Aliases: []string{"b"}, + Usage: "Create a bidirectional service stream, e.g. " + mcli.App().Name + " stream bidirectional helloworld Helloworld.PingPong '{\"stroke\": 1}' '{\"stroke\": 2}'", + Action: Bidirectional, + }, + { + Name: "server", + Aliases: []string{"s"}, + Usage: "Create a server service stream, e.g. " + mcli.App().Name + " stream server helloworld Helloworld.ServerStream '{\"count\": 10}'", + Action: Server, + }, + }, + }) +} diff --git a/cmd/micro/cmd/cli/cli.go b/cmd/micro/cmd/cli/cli.go deleted file mode 100644 index d4ebd8b9fa..0000000000 --- a/cmd/micro/cmd/cli/cli.go +++ /dev/null @@ -1,11 +0,0 @@ -package cli - -import ( - _ "go-micro.dev/v4/cmd/micro/cmd/cli/call" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/describe" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/generate" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/new" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/run" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/services" - _ "go-micro.dev/v4/cmd/micro/cmd/cli/stream" -) diff --git a/cmd/micro/cmd/cli/stream/stream.go b/cmd/micro/cmd/cli/stream/stream.go deleted file mode 100644 index b4bc05b3e1..0000000000 --- a/cmd/micro/cmd/cli/stream/stream.go +++ /dev/null @@ -1,27 +0,0 @@ -package stream - -import ( - "github.com/urfave/cli/v2" - "go-micro.dev/v4/cmd/micro/cmd" -) - -func init() { - cmd.Register(&cli.Command{ - Name: "stream", - Usage: "Create a service stream", - Subcommands: []*cli.Command{ - { - Name: "bidi", - Aliases: []string{"b"}, - Usage: "Create a bidirectional service stream, e.g. " + cmd.App().Name + " stream bidirectional helloworld Helloworld.PingPong '{\"stroke\": 1}' '{\"stroke\": 2}'", - Action: Bidirectional, - }, - { - Name: "server", - Aliases: []string{"s"}, - Usage: "Create a server service stream, e.g. " + cmd.App().Name + " stream server helloworld Helloworld.ServerStream '{\"count\": 10}'", - Action: Server, - }, - }, - }) -} diff --git a/cmd/micro/main.go b/cmd/micro/main.go index 960fb7cac6..57f5c1e3ba 100644 --- a/cmd/micro/main.go +++ b/cmd/micro/main.go @@ -1,12 +1,18 @@ package main import ( - "go-micro.dev/v4/cmd/micro/cmd" + "go-micro.dev/v4/cmd/micro/cli" // register commands - _ "go-micro.dev/v4/cmd/micro/cmd/cli" + _ "go-micro.dev/v4/cmd/micro/cli/call" + _ "go-micro.dev/v4/cmd/micro/cli/describe" + _ "go-micro.dev/v4/cmd/micro/cli/generate" + _ "go-micro.dev/v4/cmd/micro/cli/new" + _ "go-micro.dev/v4/cmd/micro/cli/run" + _ "go-micro.dev/v4/cmd/micro/cli/services" + _ "go-micro.dev/v4/cmd/micro/cli/stream" ) func main() { - cmd.Run() + cli.Run() }