package cli import ( "context" "fmt" "github.com/spf13/cobra" ) // PruneMails prunes orphaned mails and returns the count of pruned messages. func (c *Command) PruneMails(ctx context.Context) (int, error) { targets, err := c.db.GetPrunableTargets(ctx) if err != nil { return 0, err } count := 0 for _, target := range targets { err = c.persistence.RemoveBlob(target.BlobHash) if err != nil { return count, err } err = c.db.DeleteMessage(ctx, target.MessageID) if err != nil { return count, err } count++ } return count, nil } func (c *Command) pruneMails(cmd *cobra.Command, _ []string) error { fmt.Println("Pruning in progress...") count, err := c.clientPruneMails(cmd.Context()) if err != nil { return err } fmt.Printf("Pruning complete. %d messages pruned.\n", count) return nil }