(be module.Storage, ctx *cli.Context)
| 840 | } |
| 841 | |
| 842 | func 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 | } |
no test coverage detected