// Code generated by goa v3.6.0, DO NOT EDIT. // // host HTTP client CLI support package // // Command: // $ goa gen goa_example/design package cli import ( "flag" "fmt" service1c "goa_example/gen/http/service1/client" "net/http" "os" goahttp "goa.design/goa/v3/http" goa "goa.design/goa/v3/pkg" ) // 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( scheme, host string, doer goahttp.Doer, enc func(*http.Request) goahttp.Encoder, dec func(*http.Response) goahttp.Decoder, restore bool, ) (goa.Endpoint, interface{}, error) { var ( service1Flags = flag.NewFlagSet("service1", flag.ContinueOnError) service1SigninFlags = flag.NewFlagSet("signin", flag.ExitOnError) service1SigninUsernameFlag = service1SigninFlags.String("username", "REQUIRED", "Username used to perform signin") service1SigninPasswordFlag = service1SigninFlags.String("password", "REQUIRED", "Password used to perform signin") service1SecureFlags = flag.NewFlagSet("secure", flag.ExitOnError) service1SecureBodyFlag = service1SecureFlags.String("body", "REQUIRED", "") 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(scheme, host, doer, enc, dec, restore) switch epn { case "signin": endpoint = c.Signin() data, err = service1c.BuildSigninPayload(*service1SigninUsernameFlag, *service1SigninPasswordFlag) case "secure": endpoint = c.Secure() data, err = service1c.BuildSecurePayload(*service1SecureBodyFlag, *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: Username used to perform signin -password STRING: Password used to perform signin Example: %[1]s service1 signin --username "user" --password "password" `, os.Args[0]) } func service1SecureUsage() { fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 secure -body JSON -token STRING 这是一个需要JWT认证的接口 -body JSON: -token STRING: Example: %[1]s service1 secure --body '{ "fail": true }' --token "Ducimus aut similique." `, os.Args[0]) }