173 lines
4.0 KiB
Go
173 lines
4.0 KiB
Go
// Code generated by goa v3.6.0, DO NOT EDIT.
|
|
//
|
|
// host gRPC client CLI support package
|
|
//
|
|
// Command:
|
|
// $ goa gen goa_example/design
|
|
|
|
package cli
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
service1c "goa_example/gen/grpc/service1/client"
|
|
"os"
|
|
|
|
goa "goa.design/goa/v3/pkg"
|
|
grpc "google.golang.org/grpc"
|
|
)
|
|
|
|
// UsageCommands returns the set of commands and sub-commands using the format
|
|
//
|
|
// command (subcommand1|subcommand2|...)
|
|
//
|
|
func UsageCommands() string {
|
|
return `service1 (signin|secure)
|
|
`
|
|
}
|
|
|
|
// UsageExamples produces an example of a valid invocation of the CLI tool.
|
|
func UsageExamples() string {
|
|
return os.Args[0] + ` service1 signin --username "user" --password "password"` + "\n" +
|
|
""
|
|
}
|
|
|
|
// ParseEndpoint returns the endpoint and payload as specified on the command
|
|
// line.
|
|
func ParseEndpoint(cc *grpc.ClientConn, opts ...grpc.CallOption) (goa.Endpoint, interface{}, error) {
|
|
var (
|
|
service1Flags = flag.NewFlagSet("service1", flag.ContinueOnError)
|
|
|
|
service1SigninFlags = flag.NewFlagSet("signin", flag.ExitOnError)
|
|
service1SigninUsernameFlag = service1SigninFlags.String("username", "REQUIRED", "")
|
|
service1SigninPasswordFlag = service1SigninFlags.String("password", "REQUIRED", "")
|
|
|
|
service1SecureFlags = flag.NewFlagSet("secure", flag.ExitOnError)
|
|
service1SecureMessageFlag = service1SecureFlags.String("message", "", "")
|
|
service1SecureTokenFlag = service1SecureFlags.String("token", "REQUIRED", "")
|
|
)
|
|
service1Flags.Usage = service1Usage
|
|
service1SigninFlags.Usage = service1SigninUsage
|
|
service1SecureFlags.Usage = service1SecureUsage
|
|
|
|
if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
if flag.NArg() < 2 { // two non flag args are required: SERVICE and ENDPOINT (aka COMMAND)
|
|
return nil, nil, fmt.Errorf("not enough arguments")
|
|
}
|
|
|
|
var (
|
|
svcn string
|
|
svcf *flag.FlagSet
|
|
)
|
|
{
|
|
svcn = flag.Arg(0)
|
|
switch svcn {
|
|
case "service1":
|
|
svcf = service1Flags
|
|
default:
|
|
return nil, nil, fmt.Errorf("unknown service %q", svcn)
|
|
}
|
|
}
|
|
if err := svcf.Parse(flag.Args()[1:]); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
var (
|
|
epn string
|
|
epf *flag.FlagSet
|
|
)
|
|
{
|
|
epn = svcf.Arg(0)
|
|
switch svcn {
|
|
case "service1":
|
|
switch epn {
|
|
case "signin":
|
|
epf = service1SigninFlags
|
|
|
|
case "secure":
|
|
epf = service1SecureFlags
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
if epf == nil {
|
|
return nil, nil, fmt.Errorf("unknown %q endpoint %q", svcn, epn)
|
|
}
|
|
|
|
// Parse endpoint flags if any
|
|
if svcf.NArg() > 1 {
|
|
if err := epf.Parse(svcf.Args()[1:]); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
}
|
|
|
|
var (
|
|
data interface{}
|
|
endpoint goa.Endpoint
|
|
err error
|
|
)
|
|
{
|
|
switch svcn {
|
|
case "service1":
|
|
c := service1c.NewClient(cc, opts...)
|
|
switch epn {
|
|
case "signin":
|
|
endpoint = c.Signin()
|
|
data, err = service1c.BuildSigninPayload(*service1SigninUsernameFlag, *service1SigninPasswordFlag)
|
|
case "secure":
|
|
endpoint = c.Secure()
|
|
data, err = service1c.BuildSecurePayload(*service1SecureMessageFlag, *service1SecureTokenFlag)
|
|
}
|
|
}
|
|
}
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
return endpoint, data, nil
|
|
}
|
|
|
|
// service1Usage displays the usage of the service1 command and its subcommands.
|
|
func service1Usage() {
|
|
fmt.Fprintf(os.Stderr, `The secured service exposes endpoints that require valid authorization credentials.
|
|
Usage:
|
|
%[1]s [globalflags] service1 COMMAND [flags]
|
|
|
|
COMMAND:
|
|
signin: Signin implements signin.
|
|
secure: 这是一个需要JWT认证的接口
|
|
|
|
Additional help:
|
|
%[1]s service1 COMMAND --help
|
|
`, os.Args[0])
|
|
}
|
|
func service1SigninUsage() {
|
|
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 signin -username STRING -password STRING
|
|
|
|
Signin implements signin.
|
|
-username STRING:
|
|
-password STRING:
|
|
|
|
Example:
|
|
%[1]s service1 signin --username "user" --password "password"
|
|
`, os.Args[0])
|
|
}
|
|
|
|
func service1SecureUsage() {
|
|
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 secure -message JSON -token STRING
|
|
|
|
这是一个需要JWT认证的接口
|
|
-message JSON:
|
|
-token STRING:
|
|
|
|
Example:
|
|
%[1]s service1 secure --message '{
|
|
"fail": true
|
|
}' --token "Quia omnis amet et rerum quis."
|
|
`, os.Args[0])
|
|
}
|