]> git.wh0rd.org - home.git/blame_incremental - .config/mutt/list-mailboxes.py
vcs-url: add gcc support
[home.git] / .config / mutt / list-mailboxes.py
... / ...
CommitLineData
1#!/usr/bin/python3 -IS
2
3"""Produce a "sorted" list of maildir paths based on subdirs."""
4
5from pathlib import Path
6import sys
7
8
9IGNORED_DIRS = {
10 'drafts',
11 'outbox',
12 'templates',
13 '.inbox.directory',
14}
15MAILDIR_DIRS = {
16 'cur', 'new', 'tmp',
17}
18
19
20def find_dirs(topdir, ignored):
21 """Walk the subdirs following the KDE layout."""
22 for d in sorted(topdir.iterdir()):
23 if d.name in MAILDIR_DIRS:
24 continue
25
26 if d in ignored:
27 continue
28 if not d.is_symlink():
29 if (d / 'cur').is_dir():
30 yield d
31 subdir = topdir / f'.{d.name}.directory'
32 if subdir not in ignored and subdir.is_dir():
33 yield from find_dirs(subdir, ignored)
34
35
36def main(argv):
37 maildir = Path('~/.mail/').expanduser()
38 ignored = {maildir / x for x in IGNORED_DIRS}
39
40 results = find_dirs(maildir, ignored)
41 print(' '.join(f'"{x}"' for x in results))
42 return 0
43
44
45if __name__ == '__main__':
46 sys.exit(main(sys.argv[1:]))