Skip to content

Does not work for a nested directories (Verbatim style) #973

@vitonsky

Description

@vitonsky

Tool does not work for a non-flat directories (Verbatim).

I create a maildir via mbox/isync and config below

MaildirStore mail-backup
Path ~/backups/Mail/foo/
Inbox ~/backups/Mail/foo/INBOX
SubFolders Verbatim

It creates FS structure with paths like ~/backups/Mail/foo/Archive, ~/backups/Mail/foo/Notes, ~/backups/Mail/foo/Dev/GitHub and all this folders are maildirs (contains cur,new,tmp).

When i run mdedup -n -s discard-matching-path -a delete-discarded --regexp ~/backups/Mail/bar -h X-Pm-Gluon-Id -h Date -h From -h To ~/backups/Mail/foo/ ~/backups/Mail/bar/

I got error

● Step #1 - Load mails
Mail sources  [------------------------------------]  0/2info: 
Opening /home/debian/backups/Mail/foo ...

Traceback (most recent call last):
  File "/home/debian/.local/bin/mdedup", line 7, in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/mail_deduplicate/__main__.py", line 45, in main
    mdedup(prog_name=mdedup.name)
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click/core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click_extra/commands.py", line 363, in main
    return super().main(args=args, prog_name=prog_name, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click/core.py", line 1406, in main
    rv = self.invoke(ctx)
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click_extra/commands.py", line 393, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click/core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/cloup/_context.py", line 47, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/mail_deduplicate/cli.py", line 505, in mdedup
    dedup.add_source(source)
    ~~~~~~~~~~~~~~~~^^^^^^^^
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/mail_deduplicate/deduplicate.py", line 449, in add_source
    boxes = open_box(path, self.conf["input_format"], self.conf["force_unlock"])
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/mail_deduplicate/mail_box.py", line 178, in open_box
    box_format = autodetect_box_type(path)
  File "/home/debian/.local/share/pipx/venvs/mail-deduplicate/lib/python3.13/site-packages/mail_deduplicate/mail_box.py", line 150, in autodetect_box_type
    raise ValueError(f"Missing sub-directory {subdir!r}")
ValueError: Missing sub-directory 'new'

It looks a tool tries to work with maildir in flat format.
There are reasons why I cannot use this format, the gist is my folders structure are too complex.

Also i want notice i've tried to run with flag -i maildir and got another error FileNotFoundError: [Errno 2] No such file or directory: '/home/debian/backups/Mail/foo/cur'

Metadata

Metadata

Assignees

Labels

🐛 bugSomething isn't working, or a fix is proposed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions