in main.go [961:1017]
func listRun(cmd *cobra.Command, args []string) error {
ctx, client, err := clientWithContext(cmd.Context())
if err != nil {
return misuseError(err)
}
var list *berglas.ListResponse
switch {
case strings.HasPrefix(args[0], "sm://"):
project := strings.Trim(strings.TrimPrefix(args[0], "sm://"), "/")
list, err = client.List(ctx, &berglas.SecretManagerListRequest{
Project: project,
Prefix: listPrefix,
Versions: listGenerations,
})
if err != nil {
return apiError(err)
}
if len(list.Secrets) == 0 {
return nil
}
tw := new(tabwriter.Writer)
tw.Init(stdout, 0, 4, 4, ' ', 0)
fmt.Fprintf(tw, "NAME\tVERSION\tUPDATED\n")
for _, s := range list.Secrets {
fmt.Fprintf(tw, "%s\t%s\t%s\n", s.Name, s.Version, s.UpdatedAt.Local())
}
tw.Flush()
default:
bucket := strings.Trim(strings.TrimPrefix(args[0], "gs://"), "/")
list, err = client.List(ctx, &berglas.ListRequest{
Bucket: bucket,
Prefix: listPrefix,
Generations: listGenerations,
})
if err != nil {
return apiError(err)
}
if len(list.Secrets) == 0 {
return nil
}
tw := new(tabwriter.Writer)
tw.Init(stdout, 0, 4, 4, ' ', 0)
fmt.Fprintf(tw, "NAME\tGENERATION\tUPDATED\n")
for _, s := range list.Secrets {
fmt.Fprintf(tw, "%s\t%d\t%s\n", s.Name, s.Generation, s.UpdatedAt.Local())
}
tw.Flush()
}
return nil
}