diff --git a/Cargo.lock b/Cargo.lock index aa92ad2..bb8a5cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,9 +78,9 @@ checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "android-tzdata" @@ -152,7 +152,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "367fd0ad87307588d087544707bc5fbf4805ded96c7db922b70d368fa1cb5702" dependencies = [ - "unicode-width", + "unicode-width 0.1.14", "yansi", ] @@ -206,9 +206,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ "async-lock", "cfg-if", @@ -261,7 +261,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -296,7 +296,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -432,17 +432,17 @@ checksum = "e0af050e27e5d57aa14975f97fe47a134c46a390f91819f23a625319a7111bfa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "bstr" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "serde", ] @@ -509,9 +509,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.35" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57c4b4da2a9d619dd035f27316d7a426305b75be93d09e92f2b9229c34feaf" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -594,9 +594,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -604,9 +604,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -617,9 +617,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.37" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11611dca53440593f38e6b25ec629de50b14cdfa63adc0fb856115a2c6d97595" +checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01" dependencies = [ "clap", ] @@ -633,14 +633,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "clap_mangen" @@ -697,14 +697,14 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" dependencies = [ - "crossterm 0.27.0", + "crossterm 0.28.1", "strum", "strum_macros", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -759,9 +759,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -839,6 +839,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" +dependencies = [ + "bitflags 2.6.0", + "crossterm_winapi", + "parking_lot 0.12.3", + "rustix", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -904,7 +917,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1130,7 +1143,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1207,7 +1220,7 @@ dependencies = [ [[package]] name = "email-lib" version = "0.26.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "async-trait", "chrono", @@ -1216,7 +1229,7 @@ dependencies = [ "email_address", "futures", "hickory-resolver", - "http-lib 0.1.0 (git+https://github.com/pimalaya/core)", + "http-lib", "imap-client", "imap-next", "keyring-lib", @@ -1227,7 +1240,7 @@ dependencies = [ "mml-lib", "notify", "notmuch", - "oauth-lib 1.0.0 (git+https://github.com/pimalaya/core)", + "oauth-lib", "once_cell", "ouroboros", "paste", @@ -1256,7 +1269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f24a09fd651027f8764f8a12c12358715cb9bab622ab3125ede3dd6ae047c95" dependencies = [ "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1289,7 +1302,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1310,7 +1323,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1362,9 +1375,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "ff" @@ -1402,9 +1415,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", @@ -1506,9 +1519,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ "fastrand", "futures-core", @@ -1525,7 +1538,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1817,9 +1830,9 @@ dependencies = [ [[package]] name = "hoot" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a018c1f2075066355e95ac5ab7909d35a84c9d14d1fae84c4bacdf6dec188d8" +checksum = "9faf289df1f00f6daaa1bcce481f6ef7f28f153a8ef985409914d357c9cd57a2" dependencies = [ "http", "httparse", @@ -1852,19 +1865,7 @@ dependencies = [ [[package]] name = "http-lib" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "994cbd23c90551cb5821d1c9d9b1e41383f338b31fc122671edc7d1695a61338" -dependencies = [ - "thiserror", - "tokio", - "tracing", - "ureq", -] - -[[package]] -name = "http-lib" -version = "0.1.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "thiserror", "tokio", @@ -2016,7 +2017,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2180,7 +2181,7 @@ dependencies = [ "newline-converter", "once_cell", "unicode-segmentation", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -2218,9 +2219,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" [[package]] name = "jni" @@ -2281,7 +2282,7 @@ dependencies = [ "log", "secret-service", "security-framework 2.11.1", - "security-framework 3.0.0", + "security-framework 3.0.1", "windows-sys 0.59.0", "zbus", ] @@ -2289,7 +2290,7 @@ dependencies = [ [[package]] name = "keyring-lib" version = "1.0.2" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "keyring", "once_cell", @@ -2330,9 +2331,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libdbus-sys" @@ -2351,9 +2352,7 @@ checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", - "libssh2-sys", "libz-sys", - "openssl-sys", "pkg-config", ] @@ -2385,20 +2384,6 @@ dependencies = [ "redox_syscall 0.5.7", ] -[[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - [[package]] name = "libz-sys" version = "1.1.20" @@ -2490,7 +2475,7 @@ checksum = "7a575d25cf00ed68e5790b473b29242a47e991c6187785d47b45e31fc5816554" dependencies = [ "base64 0.22.1", "gethostname", - "rustls 0.23.16", + "rustls 0.23.17", "rustls-pki-types", "smtp-proto", "tokio", @@ -2615,7 +2600,7 @@ dependencies = [ [[package]] name = "mml-lib" version = "1.1.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "async-recursion", "chumsky", @@ -2767,7 +2752,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2814,22 +2799,9 @@ dependencies = [ [[package]] name = "oauth-lib" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d936e2859cd8769d97a035df0886e0a8c487d916415b4ad3802ecd5a86664452" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ - "http-lib 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "oauth2", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "oauth-lib" -version = "1.0.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" -dependencies = [ - "http-lib 0.1.0 (git+https://github.com/pimalaya/core)", + "http-lib", "oauth2", "thiserror", "tokio", @@ -2876,18 +2848,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -3112,11 +3072,11 @@ dependencies = [ [[package]] name = "pgp-lib" version = "1.0.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "async-recursion", "futures", - "http-lib 0.1.0 (git+https://github.com/pimalaya/core)", + "http-lib", "pgp", "rand", "sha1", @@ -3130,8 +3090,7 @@ dependencies = [ [[package]] name = "pimalaya-tui" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d72a8bba0e012700dfb3a7611fffaa6b9ec9dc747134b1a1d34d2fd9f8ddce5" +source = "git+https://github.com/pimalaya/tui#0f9daa6215381b7b8b7d9f12fa05c2c92befc868" dependencies = [ "async-trait", "clap", @@ -3144,7 +3103,7 @@ dependencies = [ "inquire", "md5", "mml-lib", - "oauth-lib 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "oauth-lib", "petgraph", "process-lib", "secret-lib", @@ -3214,9 +3173,9 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -3280,9 +3239,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "307e3004becf10f5a6e0d59d20f3cd28231b0e0827a96cd3e0ce6d14bc1e4bb3" dependencies = [ "unicode-ident", ] @@ -3290,7 +3249,7 @@ dependencies = [ [[package]] name = "process-lib" version = "1.0.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "serde", "thiserror", @@ -3400,7 +3359,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -3426,9 +3385,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -3540,9 +3499,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -3565,9 +3524,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "log", "once_cell", @@ -3626,7 +3585,7 @@ dependencies = [ "jni", "log", "once_cell", - "rustls 0.23.16", + "rustls 0.23.17", "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki 0.102.8", @@ -3686,9 +3645,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -3726,7 +3685,7 @@ dependencies = [ [[package]] name = "secret-lib" version = "1.0.0" -source = "git+https://github.com/pimalaya/core#afa6403c2c596d3d8c90dee26b57d57a8cce635c" +source = "git+https://github.com/pimalaya/core#2f405c35ea6c29a16d127baaa86740b33c06081d" dependencies = [ "keyring-lib", "process-lib", @@ -3770,9 +3729,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d0283c0a4a22a0f1b0e4edca251aa20b92fc96eaa09b84bec052f9415e9d71" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" dependencies = [ "bitflags 2.6.0", "core-foundation 0.10.0", @@ -3783,9 +3742,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -3799,9 +3758,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -3829,20 +3788,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -3868,7 +3827,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4098,7 +4057,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4120,9 +4079,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -4137,7 +4096,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4161,9 +4120,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -4184,22 +4143,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4239,9 +4198,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -4263,7 +4222,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4282,7 +4241,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.16", + "rustls 0.23.17", "rustls-pki-types", "tokio", ] @@ -4340,7 +4299,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4439,9 +4398,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -4464,6 +4423,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "untrusted" version = "0.9.0" @@ -4484,7 +4449,7 @@ dependencies = [ "log", "once_cell", "percent-encoding", - "rustls 0.23.16", + "rustls 0.23.17", "rustls-pemfile 2.2.0", "rustls-pki-types", "rustls-platform-verifier", @@ -4616,7 +4581,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-shared", ] @@ -4638,7 +4603,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4926,9 +4891,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" +checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" [[package]] name = "yansi" @@ -4956,7 +4921,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5014,7 +4979,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "zvariant_utils", ] @@ -5047,7 +5012,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5067,7 +5032,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5088,7 +5053,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5110,7 +5075,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5135,7 +5100,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "zvariant_utils", ] @@ -5147,5 +5112,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] diff --git a/Cargo.toml b/Cargo.toml index 6e6238f..e61572a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,8 +70,10 @@ url = "2.2" uuid = { version = "0.8", features = ["v4"] } [patch.crates-io] -imap-client = { git = "https://github.com/pimalaya/imap-client" } email-lib = { git = "https://github.com/pimalaya/core" } +imap-client = { git = "https://github.com/pimalaya/imap-client" } +mml-lib = { git = "https://github.com/pimalaya/core" } +oauth-lib = { git = "https://github.com/pimalaya/core" } +pimalaya-tui = { git = "https://github.com/pimalaya/tui" } process-lib = { git = "https://github.com/pimalaya/core" } secret-lib = { git = "https://github.com/pimalaya/core" } -mml-lib = { git = "https://github.com/pimalaya/core" } diff --git a/src/account/command/check_up.rs b/src/account/command/check_up.rs index 72f4d12..0b0c692 100644 --- a/src/account/command/check_up.rs +++ b/src/account/command/check_up.rs @@ -2,7 +2,6 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::BackendBuilder; #[cfg(feature = "imap")] use email::imap::ImapContextBuilder; #[cfg(feature = "maildir")] @@ -13,6 +12,7 @@ use email::notmuch::NotmuchContextBuilder; use email::sendmail::SendmailContextBuilder; #[cfg(feature = "smtp")] use email::smtp::SmtpContextBuilder; +use email::{backend::BackendBuilder, config::Config}; use pimalaya_tui::{ himalaya::config::{Backend, SendingBackend}, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -36,11 +36,13 @@ impl AccountCheckUpCommand { pub async fn execute(self, printer: &mut impl Printer, config: &TomlConfig) -> Result<()> { info!("executing check up account command"); - let account = self.account.name.as_ref().map(String::as_str); - printer.log("Checking configuration integrity…\n")?; - let (toml_account_config, account_config) = config.clone().into_account_configs(account)?; + let (toml_account_config, account_config) = config + .clone() + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); match toml_account_config.backend { diff --git a/src/email/envelope/command/list.rs b/src/email/envelope/command/list.rs index d8b5739..d28179f 100644 --- a/src/email/envelope/command/list.rs +++ b/src/email/envelope/command/list.rs @@ -4,7 +4,7 @@ use ariadne::{Color, Label, Report, ReportKind, Source}; use clap::Parser; use color_eyre::Result; use email::{ - backend::feature::BackendFeatureSource, email::search_query, + backend::feature::BackendFeatureSource, config::Config, email::search_query, envelope::list::ListEnvelopesOptions, search_query::SearchEmailsQuery, }; use pimalaya_tui::{ @@ -142,7 +142,9 @@ impl ListEnvelopesCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let toml_account_config = Arc::new(toml_account_config); diff --git a/src/email/envelope/command/thread.rs b/src/email/envelope/command/thread.rs index 8927c53..bba515b 100644 --- a/src/email/envelope/command/thread.rs +++ b/src/email/envelope/command/thread.rs @@ -2,7 +2,7 @@ use ariadne::{Label, Report, ReportKind, Source}; use clap::Parser; use color_eyre::Result; use email::{ - backend::feature::BackendFeatureSource, email::search_query, + backend::feature::BackendFeatureSource, config::Config, email::search_query, envelope::list::ListEnvelopesOptions, search_query::SearchEmailsQuery, }; use pimalaya_tui::{ @@ -43,7 +43,9 @@ impl ThreadEnvelopesCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); let folder = &self.folder.name; diff --git a/src/email/envelope/flag/command/add.rs b/src/email/envelope/flag/command/add.rs index f90a1ae..9b4e079 100644 --- a/src/email/envelope/flag/command/add.rs +++ b/src/email/envelope/flag/command/add.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -40,7 +40,9 @@ impl FlagAddCommand { let (ids, flags) = into_tuple(&self.args.ids_and_flags); let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/envelope/flag/command/remove.rs b/src/email/envelope/flag/command/remove.rs index be651cf..70ce9ad 100644 --- a/src/email/envelope/flag/command/remove.rs +++ b/src/email/envelope/flag/command/remove.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -40,7 +40,9 @@ impl FlagRemoveCommand { let (ids, flags) = into_tuple(&self.args.ids_and_flags); let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/envelope/flag/command/set.rs b/src/email/envelope/flag/command/set.rs index 7c0e387..647419c 100644 --- a/src/email/envelope/flag/command/set.rs +++ b/src/email/envelope/flag/command/set.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -40,7 +40,9 @@ impl FlagSetCommand { let (ids, flags) = into_tuple(&self.args.ids_and_flags); let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/attachment/command/download.rs b/src/email/message/attachment/command/download.rs index 55b3680..43c7527 100644 --- a/src/email/message/attachment/command/download.rs +++ b/src/email/message/attachment/command/download.rs @@ -1,6 +1,6 @@ use clap::Parser; use color_eyre::{eyre::Context, Result}; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -39,7 +39,9 @@ impl AttachmentDownloadCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/copy.rs b/src/email/message/command/copy.rs index 64728fc..7fc46c5 100644 --- a/src/email/message/command/copy.rs +++ b/src/email/message/command/copy.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -42,7 +42,9 @@ impl MessageCopyCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/command/delete.rs b/src/email/message/command/delete.rs index e765878..82d5aec 100644 --- a/src/email/message/command/delete.rs +++ b/src/email/message/command/delete.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -41,7 +41,9 @@ impl MessageDeleteCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/command/forward.rs b/src/email/message/command/forward.rs index d4287f6..c6fc731 100644 --- a/src/email/message/command/forward.rs +++ b/src/email/message/command/forward.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::{eyre::eyre, Result}; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::{backend::BackendBuilder, editor}, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -49,7 +49,9 @@ impl MessageForwardCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/mailto.rs b/src/email/message/command/mailto.rs index 034a425..45bafb2 100644 --- a/src/email/message/command/mailto.rs +++ b/src/email/message/command/mailto.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use mail_builder::MessageBuilder; use pimalaya_tui::{ himalaya::{backend::BackendBuilder, editor}, @@ -42,7 +42,9 @@ impl MessageMailtoCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/move.rs b/src/email/message/command/move.rs index 0371d16..3557a36 100644 --- a/src/email/message/command/move.rs +++ b/src/email/message/command/move.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -43,7 +43,9 @@ impl MessageMoveCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/command/read.rs b/src/email/message/command/read.rs index f4614c3..8284bb7 100644 --- a/src/email/message/command/read.rs +++ b/src/email/message/command/read.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use mml::message::FilterParts; use pimalaya_tui::{ himalaya::backend::BackendBuilder, @@ -86,7 +86,9 @@ impl MessageReadCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/reply.rs b/src/email/message/command/reply.rs index aba2f84..7bc1d2d 100644 --- a/src/email/message/command/reply.rs +++ b/src/email/message/command/reply.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::{eyre::eyre, Result}; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::{backend::BackendBuilder, editor}, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -51,7 +51,9 @@ impl MessageReplyCommand { let folder = &self.folder.name; let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/save.rs b/src/email/message/command/save.rs index d80bcb5..2dcd315 100644 --- a/src/email/message/command/save.rs +++ b/src/email/message/command/save.rs @@ -1,6 +1,6 @@ use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -39,7 +39,9 @@ impl MessageSaveCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/command/send.rs b/src/email/message/command/send.rs index 0b48ff5..f6b58e7 100644 --- a/src/email/message/command/send.rs +++ b/src/email/message/command/send.rs @@ -1,6 +1,6 @@ use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -32,7 +32,9 @@ impl MessageSendCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/email/message/command/thread.rs b/src/email/message/command/thread.rs index 9a83091..e5ecb75 100644 --- a/src/email/message/command/thread.rs +++ b/src/email/message/command/thread.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use mml::message::FilterParts; use pimalaya_tui::{ himalaya::backend::BackendBuilder, @@ -87,7 +87,9 @@ impl MessageThreadCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/command/write.rs b/src/email/message/command/write.rs index 7113fb1..cbba61a 100644 --- a/src/email/message/command/write.rs +++ b/src/email/message/command/write.rs @@ -2,7 +2,10 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, message::Message}; +use email::{ + config::Config, + {backend::feature::BackendFeatureSource, message::Message}, +}; use pimalaya_tui::{ himalaya::{backend::BackendBuilder, editor}, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -39,7 +42,9 @@ impl MessageWriteCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/template/command/forward.rs b/src/email/message/template/command/forward.rs index 5300d3b..e7c637f 100644 --- a/src/email/message/template/command/forward.rs +++ b/src/email/message/template/command/forward.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::{eyre::eyre, Result}; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -48,7 +48,9 @@ impl TemplateForwardCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/template/command/reply.rs b/src/email/message/template/command/reply.rs index 77cd00d..126a72a 100644 --- a/src/email/message/template/command/reply.rs +++ b/src/email/message/template/command/reply.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::{eyre::eyre, Result}; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -53,7 +53,9 @@ impl TemplateReplyCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/template/command/save.rs b/src/email/message/template/command/save.rs index 6be452a..bfe3d18 100644 --- a/src/email/message/template/command/save.rs +++ b/src/email/message/template/command/save.rs @@ -1,6 +1,6 @@ use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use mml::MmlCompilerBuilder; use pimalaya_tui::{ himalaya::backend::BackendBuilder, @@ -43,7 +43,9 @@ impl TemplateSaveCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/template/command/send.rs b/src/email/message/template/command/send.rs index 9cb2f2f..0806b69 100644 --- a/src/email/message/template/command/send.rs +++ b/src/email/message/template/command/send.rs @@ -1,15 +1,16 @@ +use std::{ + io::{self, BufRead, IsTerminal}, + sync::Arc, +}; + use clap::Parser; use color_eyre::Result; -use email::backend::feature::BackendFeatureSource; +use email::{backend::feature::BackendFeatureSource, config::Config}; use mml::MmlCompilerBuilder; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, }; -use std::{ - io::{self, BufRead, IsTerminal}, - sync::Arc, -}; use tracing::info; use crate::{ @@ -37,7 +38,9 @@ impl TemplateSendCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let account_config = Arc::new(account_config); diff --git a/src/email/message/template/command/write.rs b/src/email/message/template/command/write.rs index e65aab5..a2e46e6 100644 --- a/src/email/message/template/command/write.rs +++ b/src/email/message/template/command/write.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::message::Message; +use email::{config::Config, message::Message}; use pimalaya_tui::terminal::{cli::printer::Printer, config::TomlConfig as _}; use tracing::info; @@ -33,7 +33,9 @@ impl TemplateWriteCommand { let (_, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let tpl = Message::new_tpl_builder(Arc::new(account_config)) .with_headers(self.headers.raw) diff --git a/src/folder/command/add.rs b/src/folder/command/add.rs index a4a913c..73b6492 100644 --- a/src/folder/command/add.rs +++ b/src/folder/command/add.rs @@ -2,7 +2,10 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, folder::add::AddFolder}; +use email::{ + config::Config, + {backend::feature::BackendFeatureSource, folder::add::AddFolder}, +}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -34,7 +37,9 @@ impl AddFolderCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/folder/command/delete.rs b/src/folder/command/delete.rs index de0addd..1f33435 100644 --- a/src/folder/command/delete.rs +++ b/src/folder/command/delete.rs @@ -2,7 +2,10 @@ use std::{process, sync::Arc}; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, folder::delete::DeleteFolder}; +use email::{ + config::Config, + {backend::feature::BackendFeatureSource, folder::delete::DeleteFolder}, +}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _, prompt}, @@ -41,7 +44,9 @@ impl FolderDeleteCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/folder/command/expunge.rs b/src/folder/command/expunge.rs index 8577295..d215d67 100644 --- a/src/folder/command/expunge.rs +++ b/src/folder/command/expunge.rs @@ -2,7 +2,9 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, folder::expunge::ExpungeFolder}; +use email::{ + backend::feature::BackendFeatureSource, config::Config, folder::expunge::ExpungeFolder, +}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _}, @@ -34,7 +36,9 @@ impl FolderExpungeCommand { let folder = &self.folder.name; let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config), diff --git a/src/folder/command/list.rs b/src/folder/command/list.rs index 1eb3f66..31ce936 100644 --- a/src/folder/command/list.rs +++ b/src/folder/command/list.rs @@ -2,7 +2,10 @@ use std::sync::Arc; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, folder::list::ListFolders}; +use email::{ + config::Config, + {backend::feature::BackendFeatureSource, folder::list::ListFolders}, +}; use pimalaya_tui::{ himalaya::{ backend::BackendBuilder, @@ -37,7 +40,9 @@ impl FolderListCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let toml_account_config = Arc::new(toml_account_config); diff --git a/src/folder/command/purge.rs b/src/folder/command/purge.rs index c1b9b50..859a3a2 100644 --- a/src/folder/command/purge.rs +++ b/src/folder/command/purge.rs @@ -2,7 +2,7 @@ use std::{process, sync::Arc}; use clap::Parser; use color_eyre::Result; -use email::{backend::feature::BackendFeatureSource, folder::purge::PurgeFolder}; +use email::{backend::feature::BackendFeatureSource, config::Config, folder::purge::PurgeFolder}; use pimalaya_tui::{ himalaya::backend::BackendBuilder, terminal::{cli::printer::Printer, config::TomlConfig as _, prompt}, @@ -41,7 +41,9 @@ impl FolderPurgeCommand { let (toml_account_config, account_config) = config .clone() - .into_account_configs(self.account.name.as_deref())?; + .into_account_configs(self.account.name.as_deref(), |c: &Config, name| { + c.account(name).ok() + })?; let backend = BackendBuilder::new( Arc::new(toml_account_config),