Configuration¶
All mdedup options can be set with a configuration file.
Location¶
Location depends on OS (see
click-extra doc):
macOS:
~/Library/Application Support/mdedup/*.{toml,yaml,yml,json,ini,xml}Unix:
~/.config/mdedup/*.{toml,yaml,yml,json,ini,xml}Windows (roaming):
C:\Users\<user>\AppData\Roaming\mdedup\*.{toml,yaml,yml,json,ini,xml}
TOML sample¶
# My default configuration file.
[mdedup]
verbosity = "DEBUG"
strategy = "discard-older"
action = "delete-discarded"
Troubleshooting¶
You can easily debug the way mdedup source its configuration with the --show-params:
$ mdedup --show-params
╭──────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────────────────────────────────┬──────────────────────────────────┬─────────────┬────────┬─────────┬──────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────╮
│ ID │ Spec. │ Class │ Param type │ Python type │ Hidden │ Exposed │ Allowed in conf? │ Env. vars. │ Default │ Value │ Source │
├──────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────┼──────────────────────────────────┼─────────────┼────────┼─────────┼──────────────────┼──────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────┤
│ mdedup.action │ -a, --action [copy-selected|copy-discarded|move-selected|move-discarded|delete-selected|delete-discarded] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_ACTION │ 'copy-selected' │ 'copy-selected' │ DEFAULT │
│ mdedup.color │ --color, --ansi / --no-color, --no-ansi │ click_extra.colorize.ColorOption │ click.types.BoolParamType │ bool │ ✘ │ ✘ │ ✓ │ MDEDUP_COLOR │ True │ True │ DEFAULT │
│ mdedup.config │ --config CONFIG_PATH │ click_extra.config.ConfigOption │ click.types.UnprocessedParamType │ str │ ✘ │ ✘ │ ✘ │ MDEDUP_CONFIG │ '/home/runner/.config/mdedup/*.toml|*.yaml|*.yml|*.json|*.ini' │ '/home/runner/.config/mdedup/*.toml|*.yaml|*.yml|*.json|*.ini' │ DEFAULT │
│ mdedup.config │ --no-config │ click_extra.config.NoConfigOption │ click.types.UnprocessedParamType │ str │ ✘ │ ✘ │ ✘ │ MDEDUP_CONFIG │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.content_threshold │ -C, --content-threshold BYTES │ click_extra.parameters.Option │ click.types.IntRange │ int │ ✘ │ ✓ │ ✓ │ MDEDUP_CONTENT_THRESHOLD │ 768 │ 768 │ DEFAULT │
│ mdedup.dry_run │ -n, --dry-run │ click_extra.parameters.Option │ click.types.BoolParamType │ bool │ ✘ │ ✓ │ ✓ │ MDEDUP_DRY_RUN │ False │ False │ DEFAULT │
│ mdedup.export │ -E, --export MAIL_BOX_PATH │ click_extra.parameters.Option │ click.types.Path │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_EXPORT │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.export_append │ --export-append │ click_extra.parameters.Option │ click.types.BoolParamType │ bool │ ✘ │ ✓ │ ✓ │ MDEDUP_EXPORT_APPEND │ False │ False │ DEFAULT │
│ mdedup.export_format │ -e, --export-format [maildir|mbox|mh|babyl|mmdf] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_EXPORT_FORMAT │ 'mbox' │ 'mbox' │ DEFAULT │
│ mdedup.force_unlock │ -u, --force-unlock │ click_extra.parameters.Option │ click.types.BoolParamType │ bool │ ✘ │ ✓ │ ✓ │ MDEDUP_FORCE_UNLOCK │ False │ False │ DEFAULT │
│ mdedup.hash_body │ -b, --hash-body [skip|raw|normalized] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_HASH_BODY │ 'skip' │ 'skip' │ DEFAULT │
│ mdedup.hash_header │ -h, --hash-header Header-ID │ click_extra.parameters.Option │ click.types.StringParamType │ list │ ✘ │ ✓ │ ✓ │ MDEDUP_HASH_HEADER │ ('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID') │ ('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID') │ DEFAULT │
│ mdedup.hash_only │ -H, --hash-only │ click_extra.parameters.Option │ click.types.BoolParamType │ bool │ ✘ │ ✓ │ ✓ │ MDEDUP_HASH_ONLY │ False │ False │ DEFAULT │
│ mdedup.help │ --help │ click.core.Option │ click.types.BoolParamType │ bool │ ✘ │ ✘ │ ✘ │ MDEDUP_HELP │ False │ False │ DEFAULT │
│ mdedup.input_format │ -i, --input-format [maildir|mbox|mh|babyl|mmdf] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_INPUT_FORMAT │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.mail_sources │ │ click_extra.parameters.Argument │ click.types.Path │ list │ │ ✓ │ ✓ │ │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.regexp │ -r, --regexp REGEXP │ click_extra.parameters.Option │ click.types.StringParamType │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_REGEXP │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.show_diff │ -d, --show-diff │ click_extra.parameters.Option │ click.types.BoolParamType │ bool │ ✘ │ ✓ │ ✓ │ MDEDUP_SHOW_DIFF │ False │ False │ DEFAULT │
│ mdedup.show_params │ --show-params │ click_extra.parameters.ShowParamsOption │ click.types.BoolParamType │ bool │ ✘ │ ✘ │ ✘ │ MDEDUP_SHOW_PARAMS │ False │ True │ COMMANDLINE │
│ mdedup.size_threshold │ -S, --size-threshold BYTES │ click_extra.parameters.Option │ click.types.IntRange │ int │ ✘ │ ✓ │ ✓ │ MDEDUP_SIZE_THRESHOLD │ 512 │ 512 │ DEFAULT │
│ mdedup.strategy │ -s, --strategy [select-older|select-oldest|select-newer|select-newest|discard-newest|discard-newer|discard-oldest|discard-older|select-smaller|select-smallest|select-bigger|select-biggest|discard-biggest|discard-bigger|discard-smallest|discard-smaller|select-matching-path|select-non-matching-path|discard-non-matching-path|discard-matching-path|select-one|select-all-but-one|discard-all-but-one|discard-one] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_STRATEGY │ Sentinel.UNSET │ Sentinel.UNSET │ DEFAULT │
│ mdedup.table_format │ --table-format [asciidoc|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|html|jira|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|tsv|unsafehtml|vertical|youtrack] │ click_extra.table.TableFormatOption │ click_extra.types.EnumChoice │ str │ ✘ │ ✘ │ ✓ │ MDEDUP_TABLE_FORMAT │ 'rounded-outline' │ 'rounded-outline' │ DEFAULT │
│ mdedup.time │ --time / --no-time │ click_extra.timer.TimerOption │ click.types.BoolParamType │ bool │ ✘ │ ✘ │ ✓ │ MDEDUP_TIME │ False │ False │ DEFAULT │
│ mdedup.time_source │ -t, --time-source [date-header|ctime] │ click_extra.parameters.Option │ click_extra.types.EnumChoice │ str │ ✘ │ ✓ │ ✓ │ MDEDUP_TIME_SOURCE │ 'date-header' │ 'date-header' │ DEFAULT │
│ mdedup.verbose │ -v, --verbose │ click_extra.logging.VerboseOption │ click.types.IntRange │ int │ ✘ │ ✘ │ ✓ │ MDEDUP_VERBOSE │ 0 │ 0 │ DEFAULT │
│ mdedup.verbosity │ --verbosity LEVEL │ click_extra.logging.VerbosityOption │ click_extra.types.EnumChoice │ str │ ✘ │ ✘ │ ✓ │ MDEDUP_VERBOSITY │ 'INFO' │ 'INFO' │ DEFAULT_MAP │
│ mdedup.version │ --version │ click_extra.version.ExtraVersionOption │ click.types.BoolParamType │ bool │ ✘ │ ✘ │ ✘ │ MDEDUP_VERSION │ False │ False │ DEFAULT │
╰──────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────┴──────────────────────────────────┴─────────────┴────────┴─────────┴──────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────╯