{
  "description": "Find duplicate mails across one or more mailboxes, pick which copy to keep with a strategy, then act on the result. The default action only copies the selection to a new box. Hash tuning, thresholds and the regexp-based strategies are left out.",
  "options": [
    {
      "names": [
        "--strategy",
        "-s"
      ],
      "description": "Which copy of each duplicate set is selected. Without one, nothing is selected and no action is taken.",
      "args": {
        "name": "strategy",
        "description": "Which copy of each duplicate set is selected. Without one, nothing is selected and no action is taken.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "select-oldest",
            "description": "Select oldest"
          },
          {
            "name": "select-newest",
            "description": "Select newest"
          },
          {
            "name": "select-biggest",
            "description": "Select biggest"
          },
          {
            "name": "select-smallest",
            "description": "Select smallest"
          },
          {
            "name": "select-one",
            "description": "Select one copy"
          },
          {
            "name": "select-all-but-one",
            "description": "Select all but one"
          }
        ]
      }
    },
    {
      "names": [
        "--action",
        "-a"
      ],
      "description": "Default copy-selected only reads the sources and writes a new box. The delete-* and move-* actions change the sources; rehearse with Dry run.",
      "args": {
        "name": "action",
        "description": "Default copy-selected only reads the sources and writes a new box. The delete-* and move-* actions change the sources; rehearse with Dry run.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "copy-selected",
            "description": "Copy selected"
          },
          {
            "name": "copy-discarded",
            "description": "Copy discarded"
          },
          {
            "name": "move-selected",
            "description": "Move selected"
          },
          {
            "name": "move-discarded",
            "description": "Move discarded"
          },
          {
            "name": "delete-selected",
            "description": "Delete selected"
          },
          {
            "name": "delete-discarded",
            "description": "Delete discarded"
          },
          {
            "name": "hardlink-discarded",
            "description": "Hardlink discarded"
          }
        ]
      }
    },
    {
      "names": [
        "--export",
        "-E"
      ],
      "description": "Required by the copy and move actions.",
      "args": {
        "name": "export",
        "description": "Required by the copy and move actions.",
        "isOptional": false,
        "template": "filepaths"
      },
      "isDangerous": true
    },
    {
      "names": [
        "--export-format",
        "-e"
      ],
      "description": "Destination format",
      "args": {
        "name": "export_format",
        "isOptional": false,
        "suggestions": [
          {
            "name": "maildir",
            "description": "Maildir"
          },
          {
            "name": "mbox",
            "description": "mbox"
          },
          {
            "name": "mh",
            "description": "MH"
          },
          {
            "name": "babyl",
            "description": "Babyl"
          },
          {
            "name": "mmdf",
            "description": "MMDF"
          },
          {
            "name": "eml",
            "description": "eml files"
          }
        ]
      }
    },
    {
      "names": [
        "--export-append"
      ],
      "description": "Append to existing destination"
    },
    {
      "names": [
        "--input-format",
        "-i"
      ],
      "description": "Leave unset to auto-detect maildir, mbox and eml.",
      "args": {
        "name": "input_format",
        "description": "Leave unset to auto-detect maildir, mbox and eml.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "maildir",
            "description": "Maildir"
          },
          {
            "name": "mbox",
            "description": "mbox"
          },
          {
            "name": "mh",
            "description": "MH"
          },
          {
            "name": "babyl",
            "description": "Babyl"
          },
          {
            "name": "mmdf",
            "description": "MMDF"
          },
          {
            "name": "eml",
            "description": "eml files"
          }
        ]
      }
    },
    {
      "names": [
        "--hash-body",
        "-b"
      ],
      "description": "Hash mail bodies",
      "args": {
        "name": "hash_body",
        "isOptional": false,
        "suggestions": [
          {
            "name": "skip",
            "description": "Skip (headers only)"
          },
          {
            "name": "raw",
            "description": "Raw"
          },
          {
            "name": "normalized",
            "description": "Normalized"
          }
        ]
      }
    },
    {
      "names": [
        "--cache"
      ],
      "description": "Reuse hash cache"
    },
    {
      "names": [
        "--no-cache"
      ],
      "description": "Reuse hash cache"
    },
    {
      "names": [
        "--dry-run",
        "-n"
      ],
      "description": "Report what would be done without doing it."
    }
  ],
  "args": [
    {
      "name": "sources",
      "description": "Mailboxes (maildir, mbox, ...) or mail files to deduplicate.",
      "isOptional": false,
      "isVariadic": true,
      "template": "filepaths"
    }
  ],
  "name": "mdedup"
}
