563768b58a
* Move to v3 Co-authored-by: Ben Toogood <bentoogood@gmail.com>
51 lines
844 B
Go
51 lines
844 B
Go
// Package cli is a urfave/cli implementation of the command
|
|
package cli
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/micro/cli/v2"
|
|
"github.com/micro/go-micro/v3/cmd"
|
|
)
|
|
|
|
type cliCmd struct {
|
|
opts cmd.Options
|
|
app *cli.App
|
|
}
|
|
|
|
func (c *cliCmd) Init(opts ...cmd.Option) error {
|
|
for _, o := range opts {
|
|
o(&c.opts)
|
|
}
|
|
c.app.Name = c.opts.Name
|
|
c.app.Description = c.opts.Description
|
|
c.app.Version = c.opts.Version
|
|
c.app.Flags = c.opts.Flags
|
|
c.app.Commands = c.opts.Commands
|
|
c.app.Action = c.opts.Action
|
|
return nil
|
|
}
|
|
|
|
func (c *cliCmd) Options() cmd.Options {
|
|
return c.opts
|
|
}
|
|
|
|
func (c *cliCmd) App() *cli.App {
|
|
return c.app
|
|
}
|
|
|
|
func (c *cliCmd) Run() error {
|
|
return c.app.Run(os.Args)
|
|
}
|
|
|
|
func (c *cliCmd) String() string {
|
|
return "cli"
|
|
}
|
|
|
|
func NewCmd(opts ...cmd.Option) cmd.Cmd {
|
|
c := new(cliCmd)
|
|
c.app = cli.NewApp()
|
|
c.Init(opts...)
|
|
return c
|
|
}
|