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}