git: 0685640aad62 - main - mail/imap-tools: Add, a collection of tools to manipulate IMAP mailboxes

From: Mathieu Arnold <mat_at_FreeBSD.org>
Date: Sat, 09 Nov 2024 08:19:22 UTC
The branch main has been updated by mat:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0685640aad62a87c0bade264f4090367df1d78c5

commit 0685640aad62a87c0bade264f4090367df1d78c5
Author:     Mathieu Arnold <mat@FreeBSD.org>
AuthorDate: 2024-11-09 07:07:28 +0000
Commit:     Mathieu Arnold <mat@FreeBSD.org>
CommitDate: 2024-11-09 08:19:00 +0000

    mail/imap-tools: Add, a collection of tools to manipulate IMAP mailboxes
---
 mail/Makefile                   |   1 +
 mail/imap-tools/Makefile        |  19 ++++
 mail/imap-tools/Makefile.crates | 119 ++++++++++++++++++++
 mail/imap-tools/distinfo        | 241 ++++++++++++++++++++++++++++++++++++++++
 mail/imap-tools/pkg-descr       |   5 +
 5 files changed, 385 insertions(+)

diff --git a/mail/Makefile b/mail/Makefile
index 8ba791082d32..fe9438793a46 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -163,6 +163,7 @@
     SUBDIR += imapfilter
     SUBDIR += imapsync
     SUBDIR += imaptools
+    SUBDIR += imap-tools
     SUBDIR += imaputils
     SUBDIR += isbg
     SUBDIR += isoqlog
diff --git a/mail/imap-tools/Makefile b/mail/imap-tools/Makefile
new file mode 100644
index 000000000000..ac69f957f458
--- /dev/null
+++ b/mail/imap-tools/Makefile
@@ -0,0 +1,19 @@
+PORTNAME=	imap-tools
+DISTVERSION=	1.2.0
+CATEGORIES=	mail
+MASTER_SITES=	CRATESIO
+DISTFILES=	${CARGO_DIST_SUBDIR}/${DISTNAME}${CARGO_CRATE_EXT}
+
+MAINTAINER=	mat@FreeBSD.org
+COMMENT=	A collection of tools to manipulate IMAP mailboxes
+WWW=		https://gitlab.com/mat813/imap-tools
+
+LICENSE=	MIT
+
+USES=		cargo
+
+PLIST_FILES=	bin/imap-tools
+
+# make cargo-crates > Makefile.crates
+
+.include <bsd.port.mk>
diff --git a/mail/imap-tools/Makefile.crates b/mail/imap-tools/Makefile.crates
new file mode 100644
index 000000000000..bbb691d9c92b
--- /dev/null
+++ b/mail/imap-tools/Makefile.crates
@@ -0,0 +1,119 @@
+CARGO_CRATES=	addr2line-0.24.2 \
+		adler2-2.0.0 \
+		aho-corasick-1.1.3 \
+		aliasable-0.1.3 \
+		android-tzdata-0.1.1 \
+		android_system_properties-0.1.5 \
+		anstream-0.6.18 \
+		anstyle-1.0.10 \
+		anstyle-parse-0.2.6 \
+		anstyle-query-1.1.2 \
+		anstyle-wincon-3.0.6 \
+		autocfg-1.4.0 \
+		backtrace-0.3.74 \
+		base64-0.22.1 \
+		bitflags-2.6.0 \
+		bufstream-0.1.4 \
+		bumpalo-3.16.0 \
+		cc-1.1.37 \
+		cfg-if-1.0.0 \
+		chrono-0.4.38 \
+		clap-4.5.20 \
+		clap_builder-4.5.20 \
+		clap_derive-4.5.18 \
+		clap_lex-0.7.2 \
+		colorchoice-1.0.3 \
+		core-foundation-0.9.4 \
+		core-foundation-sys-0.8.7 \
+		dtoa-0.4.8 \
+		either-1.13.0 \
+		failure-0.1.8 \
+		failure_derive-0.1.8 \
+		getrandom-0.2.15 \
+		gimli-0.31.1 \
+		heck-0.4.1 \
+		heck-0.5.0 \
+		iana-time-zone-0.1.61 \
+		iana-time-zone-haiku-0.1.2 \
+		imap-3.0.0-alpha.14 \
+		imap-proto-0.16.5 \
+		is_terminal_polyfill-1.70.1 \
+		itertools-0.12.1 \
+		itoa-1.0.11 \
+		js-sys-0.3.72 \
+		lazy_static-1.5.0 \
+		libc-0.2.162 \
+		linked-hash-map-0.5.6 \
+		log-0.4.22 \
+		memchr-2.7.4 \
+		minimal-lexical-0.2.1 \
+		miniz_oxide-0.8.0 \
+		nom-7.1.3 \
+		num-traits-0.2.19 \
+		object-0.36.5 \
+		once_cell-1.20.2 \
+		openssl-probe-0.1.5 \
+		ordered-float-2.10.1 \
+		ouroboros-0.18.4 \
+		ouroboros_macro-0.18.4 \
+		proc-macro2-1.0.89 \
+		proc-macro2-diagnostics-0.10.1 \
+		quote-1.0.37 \
+		regex-1.11.1 \
+		regex-automata-0.4.8 \
+		regex-syntax-0.8.5 \
+		ring-0.17.8 \
+		rustc-demangle-0.1.24 \
+		rustls-0.22.4 \
+		rustls-connector-0.19.2 \
+		rustls-native-certs-0.7.3 \
+		rustls-pemfile-2.2.0 \
+		rustls-pki-types-1.10.0 \
+		rustls-webpki-0.102.8 \
+		ryu-1.0.18 \
+		schannel-0.1.26 \
+		security-framework-2.11.1 \
+		security-framework-sys-2.12.1 \
+		serde-1.0.214 \
+		serde-value-0.7.0 \
+		serde_any-0.5.0 \
+		serde_derive-1.0.214 \
+		serde_json-1.0.132 \
+		serde_yaml-0.7.5 \
+		shell-words-1.1.0 \
+		shlex-1.3.0 \
+		size-0.5.0-preview2 \
+		spin-0.9.8 \
+		static_assertions-1.1.0 \
+		strsim-0.11.1 \
+		subtle-2.6.1 \
+		syn-1.0.109 \
+		syn-2.0.87 \
+		synstructure-0.12.6 \
+		toml-0.4.10 \
+		unicode-ident-1.0.13 \
+		unicode-xid-0.2.6 \
+		untrusted-0.9.0 \
+		utf8parse-0.2.2 \
+		version_check-0.9.5 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.95 \
+		wasm-bindgen-backend-0.2.95 \
+		wasm-bindgen-macro-0.2.95 \
+		wasm-bindgen-macro-support-0.2.95 \
+		wasm-bindgen-shared-0.2.95 \
+		windows-core-0.52.0 \
+		windows-sys-0.52.0 \
+		windows-sys-0.59.0 \
+		windows-targets-0.52.6 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnullvm-0.52.6 \
+		windows_i686_msvc-0.52.6 \
+		windows_x86_64_gnu-0.52.6 \
+		windows_x86_64_gnullvm-0.52.6 \
+		windows_x86_64_msvc-0.52.6 \
+		yaml-rust-0.4.5 \
+		yansi-1.0.1 \
+		zeroize-1.8.1
diff --git a/mail/imap-tools/distinfo b/mail/imap-tools/distinfo
new file mode 100644
index 000000000000..8fc558e05687
--- /dev/null
+++ b/mail/imap-tools/distinfo
@@ -0,0 +1,241 @@
+TIMESTAMP = 1731135115
+SHA256 (rust/crates/imap-tools-1.2.0.crate) = e6befe31c9caafc06e8bbfa0cdef457987bdc870c781dfb46533e38c714f66b7
+SIZE (rust/crates/imap-tools-1.2.0.crate) = 19830
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
+SIZE (rust/crates/adler2-2.0.0.crate) = 13529
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/aliasable-0.1.3.crate) = 250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd
+SIZE (rust/crates/aliasable-0.1.3.crate) = 6169
+SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
+SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b
+SIZE (rust/crates/anstream-0.6.18.crate) = 29681
+SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9
+SIZE (rust/crates/anstyle-1.0.10.crate) = 15725
+SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9
+SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343
+SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c
+SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969
+SHA256 (rust/crates/anstyle-wincon-3.0.6.crate) = 2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125
+SIZE (rust/crates/anstyle-wincon-3.0.6.crate) = 12271
+SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
+SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
+SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
+SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
+SHA256 (rust/crates/bufstream-0.1.4.crate) = 40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8
+SIZE (rust/crates/bufstream-0.1.4.crate) = 8741
+SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
+SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
+SHA256 (rust/crates/cc-1.1.37.crate) = 40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf
+SIZE (rust/crates/cc-1.1.37.crate) = 92262
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chrono-0.4.38.crate) = a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401
+SIZE (rust/crates/chrono-0.4.38.crate) = 220559
+SHA256 (rust/crates/clap-4.5.20.crate) = b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8
+SIZE (rust/crates/clap-4.5.20.crate) = 56376
+SHA256 (rust/crates/clap_builder-4.5.20.crate) = 19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54
+SIZE (rust/crates/clap_builder-4.5.20.crate) = 163812
+SHA256 (rust/crates/clap_derive-4.5.18.crate) = 4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab
+SIZE (rust/crates/clap_derive-4.5.18.crate) = 30131
+SHA256 (rust/crates/clap_lex-0.7.2.crate) = 1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97
+SIZE (rust/crates/clap_lex-0.7.2.crate) = 12805
+SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
+SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
+SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
+SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/dtoa-0.4.8.crate) = 56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0
+SIZE (rust/crates/dtoa-0.4.8.crate) = 16175
+SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0
+SIZE (rust/crates/either-1.13.0.crate) = 19169
+SHA256 (rust/crates/failure-0.1.8.crate) = d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86
+SIZE (rust/crates/failure-0.1.8.crate) = 37582
+SHA256 (rust/crates/failure_derive-0.1.8.crate) = aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4
+SIZE (rust/crates/failure_derive-0.1.8.crate) = 4950
+SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
+SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
+SIZE (rust/crates/heck-0.4.1.crate) = 11567
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220
+SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/imap-3.0.0-alpha.14.crate) = 2b648e4cc1fe054779cf79ff8c67cba70dd837bc1d67c099eef49a96ba0c6b64
+SIZE (rust/crates/imap-3.0.0-alpha.14.crate) = 96036
+SHA256 (rust/crates/imap-proto-0.16.5.crate) = de555d9526462b6f9ece826a26fb7c67eca9a0245bd9ff84fa91972a5d5d8856
+SIZE (rust/crates/imap-proto-0.16.5.crate) = 35791
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
+SIZE (rust/crates/itertools-0.12.1.crate) = 137761
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
+SHA256 (rust/crates/js-sys-0.3.72.crate) = 6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9
+SIZE (rust/crates/js-sys-0.3.72.crate) = 54096
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.162.crate) = 18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398
+SIZE (rust/crates/libc-0.2.162.crate) = 769354
+SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
+SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
+SIZE (rust/crates/log-0.4.22.crate) = 44027
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/miniz_oxide-0.8.0.crate) = e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1
+SIZE (rust/crates/miniz_oxide-0.8.0.crate) = 56343
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/object-0.36.5.crate) = aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e
+SIZE (rust/crates/object-0.36.5.crate) = 327435
+SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775
+SIZE (rust/crates/once_cell-1.20.2.crate) = 33394
+SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf
+SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227
+SHA256 (rust/crates/ordered-float-2.10.1.crate) = 68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c
+SIZE (rust/crates/ordered-float-2.10.1.crate) = 16029
+SHA256 (rust/crates/ouroboros-0.18.4.crate) = 944fa20996a25aded6b4795c6d63f10014a7a83f8be9828a11860b08c5fc4a67
+SIZE (rust/crates/ouroboros-0.18.4.crate) = 11394
+SHA256 (rust/crates/ouroboros_macro-0.18.4.crate) = 39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd
+SIZE (rust/crates/ouroboros_macro-0.18.4.crate) = 22011
+SHA256 (rust/crates/proc-macro2-1.0.89.crate) = f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e
+SIZE (rust/crates/proc-macro2-1.0.89.crate) = 49446
+SHA256 (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8
+SIZE (rust/crates/proc-macro2-diagnostics-0.10.1.crate) = 12219
+SHA256 (rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af
+SIZE (rust/crates/quote-1.0.37.crate) = 28558
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.4.8.crate) = 368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3
+SIZE (rust/crates/regex-automata-0.4.8.crate) = 617784
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/ring-0.17.8.crate) = c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d
+SIZE (rust/crates/ring-0.17.8.crate) = 4188554
+SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
+SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
+SHA256 (rust/crates/rustls-0.22.4.crate) = bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432
+SIZE (rust/crates/rustls-0.22.4.crate) = 333681
+SHA256 (rust/crates/rustls-connector-0.19.2.crate) = b5bd40675c79c896f46d0031bf64c448b35e583dd2bc949751ddd800351e453a
+SIZE (rust/crates/rustls-connector-0.19.2.crate) = 4662
+SHA256 (rust/crates/rustls-native-certs-0.7.3.crate) = e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5
+SIZE (rust/crates/rustls-native-certs-0.7.3.crate) = 31564
+SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50
+SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849
+SHA256 (rust/crates/rustls-pki-types-1.10.0.crate) = 16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b
+SIZE (rust/crates/rustls-pki-types-1.10.0.crate) = 55134
+SHA256 (rust/crates/rustls-webpki-0.102.8.crate) = 64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9
+SIZE (rust/crates/rustls-webpki-0.102.8.crate) = 204327
+SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
+SIZE (rust/crates/ryu-1.0.18.crate) = 47713
+SHA256 (rust/crates/schannel-0.1.26.crate) = 01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1
+SIZE (rust/crates/schannel-0.1.26.crate) = 42791
+SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
+SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
+SHA256 (rust/crates/security-framework-sys-2.12.1.crate) = fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2
+SIZE (rust/crates/security-framework-sys-2.12.1.crate) = 20112
+SHA256 (rust/crates/serde-1.0.214.crate) = f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5
+SIZE (rust/crates/serde-1.0.214.crate) = 78523
+SHA256 (rust/crates/serde-value-0.7.0.crate) = f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c
+SIZE (rust/crates/serde-value-0.7.0.crate) = 10249
+SHA256 (rust/crates/serde_any-0.5.0.crate) = 38cb506febacc2cf6533279947bd37b69ce91782af1aedf31c7e6181a77d46ee
+SIZE (rust/crates/serde_any-0.5.0.crate) = 18042
+SHA256 (rust/crates/serde_derive-1.0.214.crate) = de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766
+SIZE (rust/crates/serde_derive-1.0.214.crate) = 56630
+SHA256 (rust/crates/serde_json-1.0.132.crate) = d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03
+SIZE (rust/crates/serde_json-1.0.132.crate) = 150549
+SHA256 (rust/crates/serde_yaml-0.7.5.crate) = ef8099d3df28273c99a1728190c7a9f19d444c941044f64adf986bee7ec53051
+SIZE (rust/crates/serde_yaml-0.7.5.crate) = 32510
+SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde
+SIZE (rust/crates/shell-words-1.1.0.crate) = 9871
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/size-0.5.0-preview2.crate) = c6916a53089eff8ecef2b6efe5335365be0f1b80c7b5bc725e9c8e0d9ee05ad5
+SIZE (rust/crates/size-0.5.0-preview2.crate) = 22258
+SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
+SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292
+SIZE (rust/crates/subtle-2.6.1.crate) = 14562
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.87.crate) = 25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d
+SIZE (rust/crates/syn-2.0.87.crate) = 278076
+SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
+SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
+SHA256 (rust/crates/toml-0.4.10.crate) = 758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f
+SIZE (rust/crates/toml-0.4.10.crate) = 47534
+SHA256 (rust/crates/unicode-ident-1.0.13.crate) = e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe
+SIZE (rust/crates/unicode-ident-1.0.13.crate) = 43279
+SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
+SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
+SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
+SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/wasm-bindgen-0.2.95.crate) = 128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e
+SIZE (rust/crates/wasm-bindgen-0.2.95.crate) = 43894
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.95.crate) = cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358
+SIZE (rust/crates/wasm-bindgen-backend-0.2.95.crate) = 30487
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.95.crate) = e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56
+SIZE (rust/crates/wasm-bindgen-macro-0.2.95.crate) = 6938
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.95.crate) = 26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.95.crate) = 21331
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.95.crate) = 65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d
+SIZE (rust/crates/wasm-bindgen-shared-0.2.95.crate) = 7649
+SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
+SIZE (rust/crates/windows-core-0.52.0.crate) = 42154
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
+SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
+SHA256 (rust/crates/yansi-1.0.1.crate) = cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049
+SIZE (rust/crates/yansi-1.0.1.crate) = 75497
+SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde
+SIZE (rust/crates/zeroize-1.8.1.crate) = 20029
diff --git a/mail/imap-tools/pkg-descr b/mail/imap-tools/pkg-descr
new file mode 100644
index 000000000000..6cc6a79f2e7c
--- /dev/null
+++ b/mail/imap-tools/pkg-descr
@@ -0,0 +1,5 @@
+A collection of tools to manipulate IMAP mailboxes.
+
+These commands will help you curate your IMAP mailboxes.
+
+You can remove duplicate emails, clean old emails, or archive them.