MCPcopy Create free account
hub / github.com/foxcpp/maddy / msgsFlags

Function msgsFlags

internal/cli/ctl/imap.go:842–893  ·  view source on GitHub ↗
(be module.Storage, ctx *cli.Context)

Source from the content-addressed store, hash-verified

840}
841
842func msgsFlags(be module.Storage, ctx *cli.Context) error {
843 username := ctx.Args().First()
844 if username == "" {
845 return cli.Exit("Error: USERNAME is required", 2)
846 }
847 name := ctx.Args().Get(1)
848 if name == "" {
849 return cli.Exit("Error: MAILBOX is required", 2)
850 }
851 seqStr := ctx.Args().Get(2)
852 if seqStr == "" {
853 return cli.Exit("Error: SEQ is required", 2)
854 }
855
856 if !ctx.Bool("uid") {
857 fmt.Fprintln(os.Stderr, "WARNING: --uid=true will be the default in 0.7")
858 }
859
860 seq, err := imap.ParseSeqSet(seqStr)
861 if err != nil {
862 return err
863 }
864
865 u, err := be.GetIMAPAcct(username)
866 if err != nil {
867 return err
868 }
869
870 _, mbox, err := u.GetMailbox(name, false, nil)
871 if err != nil {
872 return err
873 }
874
875 flags := ctx.Args().Slice()[3:]
876 if len(flags) == 0 {
877 return cli.Exit("Error: at least once FLAG is required", 2)
878 }
879
880 var op imap.FlagsOp
881 switch ctx.Command.Name {
882 case "add-flags":
883 op = imap.AddFlags
884 case "rem-flags":
885 op = imap.RemoveFlags
886 case "set-flags":
887 op = imap.SetFlags
888 default:
889 panic("unknown command: " + ctx.Command.Name)
890 }
891
892 return mbox.UpdateMessagesFlags(ctx.Bool("uid"), seq, op, true, flags)
893}

Callers 1

initFunction · 0.85

Calls 4

ArgsMethod · 0.80
BoolMethod · 0.80
GetIMAPAcctMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected