all repos — postern @ fc287763b9ce6b6f9823e11c0b1173da0446ebc5

Modern mail management

internal/cli/prune.go (view raw)

 1package cli
 2
 3import (
 4	"context"
 5	"fmt"
 6
 7	"github.com/spf13/cobra"
 8)
 9
10func (c *Command) pruneMails(cmd *cobra.Command, _ []string) error {
11	fmt.Println("Pruning in progress...")
12
13	targets, err := c.db.GetPrunableTargets(context.Background())
14	if err != nil {
15		return err
16	}
17
18	for _, target := range targets {
19		err = c.persistence.RemoveBlob(target.BlobHash)
20		if err != nil {
21			return err
22		}
23		err = c.db.DeleteMessage(context.Background(), target.MessageID)
24	}
25
26	if err != nil {
27		return err
28	}
29	fmt.Println("Pruning complete.")
30	return nil
31}