Support list single service by service name (#12)
diff --git a/commands/service/list.go b/commands/service/list.go
index 81b5de7..feacb89 100644
--- a/commands/service/list.go
+++ b/commands/service/list.go
@@ -29,10 +29,12 @@
)
var ListCommand = cli.Command{
- Name: "list",
- ShortName: "ls",
- Usage: "List all available services",
- Flags: flags.DurationFlags,
+ Name: "list",
+ ShortName: "ls",
+ Usage: "List services",
+ ArgsUsage: "<service name>",
+ Description: "list all services if no <service name> is given, otherwise, only list the given service",
+ Flags: flags.DurationFlags,
Before: interceptor.BeforeChain([]cli.BeforeFunc{
interceptor.DurationInterceptor,
}),
@@ -40,11 +42,19 @@
end := ctx.String("end")
start := ctx.String("start")
step := ctx.Generic("step")
- services := client.Services(ctx, schema.Duration{
- Start: start,
- End: end,
- Step: step.(*model.StepEnumValue).Selected,
- })
+
+ var services []schema.Service
+
+ if args := ctx.Args(); len(args) == 0 {
+ services = client.Services(ctx, schema.Duration{
+ Start: start,
+ End: end,
+ Step: step.(*model.StepEnumValue).Selected,
+ })
+ } else {
+ service, _ := client.SearchService(ctx, args.First())
+ services = []schema.Service{service}
+ }
return display.Display(ctx, services)
},
diff --git a/graphql/client/client.go b/graphql/client/client.go
index 70f8081..fb870a0 100644
--- a/graphql/client/client.go
+++ b/graphql/client/client.go
@@ -86,8 +86,8 @@
var response map[string]schema.Service
request := graphql.NewRequest(`
query searchService($serviceCode: String!) {
- service: searchService(serviceCode: $serviceCode) {
- id name
+ service: searchService(serviceCode: $serviceCode) {
+ id name
}
}
`)