mirror of
https://github.com/go-micro/go-micro.git
synced 2025-09-16 08:36:30 +02:00
flatten cli (#2332)
This commit is contained in:
@@ -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,
|
||||
})
|
||||
}
|
@@ -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
|
@@ -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,
|
||||
},
|
@@ -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
|
@@ -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{
|
@@ -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,
|
||||
},
|
@@ -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") {
|
@@ -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
|
27
cmd/micro/cli/stream/stream.go
Normal file
27
cmd/micro/cli/stream/stream.go
Normal file
@@ -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,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
@@ -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"
|
||||
)
|
@@ -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,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
@@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user