func listRun()

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
}