From b3ab76e57378ea6c9b4e0dd1ea2d07042859d0b9 Mon Sep 17 00:00:00 2001 From: veeso Date: Fri, 24 Jun 2022 11:34:41 +0200 Subject: [PATCH 01/15] working on 0.10.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- docs/de/README.md | 2 +- docs/es/README.md | 2 +- docs/fr/README.md | 2 +- docs/it/README.md | 2 +- docs/zh-CN/README.md | 2 +- install.sh | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08a3c87..04cd129 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2485,7 +2485,7 @@ dependencies = [ [[package]] name = "termscp" -version = "0.9.0" +version = "0.10.0" dependencies = [ "argh", "bitflags", diff --git a/Cargo.toml b/Cargo.toml index 82a81d1..07f2394 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ license = "MIT" name = "termscp" readme = "README.md" repository = "https://github.com/veeso/termscp" -version = "0.9.0" +version = "0.10.0" [package.metadata.rpm] package = "termscp" diff --git a/README.md b/README.md index e57e479..c2ccc21 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@

Developed by @veeso

-

Current version: 0.9.0 (18/06/2022)

+

Current version: 0.10.0 (09/06/2022)

Entwickelt von @veeso

-

Aktuelle Version: 0.9.0 (18/06/2022)

+

Aktuelle Version: 0.10.0 (09/06/2022)

Desarrollado por @veeso

-

Versión actual: 0.9.0 (18/06/2022)

+

Versión actual: 0.10.0 (09/06/2022)

Développé par @veeso

-

Version actuelle: 0.9.0 (18/06/2022)

+

Version actuelle: 0.10.0 (09/06/2022)

Sviluppato da @veeso

-

Versione corrente: 0.9.0 (18/06/2022)

+

Versione corrente: 0.10.0 (09/06/2022)

@veeso 开发

-

当前版本: 0.9.0 (18/06/2022)

+

当前版本: 0.10.0 (09/06/2022)

Date: Wed, 17 Aug 2022 10:24:13 +0200 Subject: [PATCH 02/15] lazy-regex --- CHANGELOG.md | 11 ++++++ Cargo.lock | 25 ++++++++++++- Cargo.toml | 2 +- src/explorer/formatter.rs | 21 +++++------ src/main.rs | 2 + src/utils/parser.rs | 79 ++++++++++++++++++++------------------- 6 files changed, 87 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index caa04e3..4a49c09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog - [Changelog](#changelog) + - [0.10.0](#0100) - [0.9.0](#090) - [0.8.2](#082) - [0.8.1](#081) @@ -25,6 +26,16 @@ --- +## 0.10.0 + +Released on ?? + +> ⭐ 500 stars update 🌟 + +- Dependencies: + - Changed `regex` to `lazy-regex 2.3.0` + - Bump `tuirealm` to `1.8.0` + ## 0.9.0 Released on 18/06/2022 diff --git a/Cargo.lock b/Cargo.lock index 04cd129..71ac908 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1127,6 +1127,29 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "lazy-regex" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b12f2eb6ed7d39405c5eb25a034b4c106a9ad87a6d9be3298de6c5f32fd57d" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2496e5264069bc726ccf37eb76b9cd89406ae110d836c3f76729f99c8a23293" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -2496,6 +2519,7 @@ dependencies = [ "edit", "hostname", "keyring", + "lazy-regex", "lazy_static", "log", "magic-crypt", @@ -2504,7 +2528,6 @@ dependencies = [ "open", "pretty_assertions", "rand", - "regex", "remotefs", "remotefs-aws-s3", "remotefs-ftp", diff --git a/Cargo.toml b/Cargo.toml index 07f2394..b6fe884 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,6 +40,7 @@ dirs = "4.0.0" edit = "0.1.4" hostname = "0.3.1" keyring = { version = "1.1.2", optional = true } +lazy-regex = "^2.3.0" lazy_static = "1.4.0" log = "0.4.17" magic-crypt = "3.1.10" @@ -47,7 +48,6 @@ notify = "4.0.17" notify-rust = { version = "4.5.6", default-features = false, features = [ "d" ] } open = "2.1.3" rand = "0.8.5" -regex = "1.5.6" remotefs = "^0.2.0" remotefs-aws-s3 = "^0.2.0" remotefs-ftp = { version = "^0.1.0", features = [ "secure" ] } diff --git a/src/explorer/formatter.rs b/src/explorer/formatter.rs index d030979..1f3e8df 100644 --- a/src/explorer/formatter.rs +++ b/src/explorer/formatter.rs @@ -8,7 +8,7 @@ use crate::utils::path::diff_paths; use crate::utils::string::secure_substring; // Ext use bytesize::ByteSize; -use regex::Regex; +use lazy_regex::{Lazy, Regex}; use remotefs::File; use std::path::PathBuf; use std::time::UNIX_EPOCH; @@ -32,17 +32,14 @@ const FMT_KEY_SYMLINK: &str = "SYMLINK"; const FMT_KEY_USER: &str = "USER"; // Default const FMT_DEFAULT_STX: &str = "{NAME} {PEX} {USER} {SIZE} {MTIME}"; -// Regex -lazy_static! { - /** - * Regex matches: - * - group 0: KEY NAME - * - group 1?: LENGTH - * - group 2?: EXTRA - */ - static ref FMT_KEY_REGEX: Regex = Regex::new(r"\{(.*?)\}").ok().unwrap(); - static ref FMT_ATTR_REGEX: Regex = Regex::new(r"(?:([A-Z]+))(:?([0-9]+))?(:?(.+))?").ok().unwrap(); -} +/** + * Regex matches: + * - group 0: KEY NAME + * - group 1?: LENGTH + * - group 2?: EXTRA + */ +static FMT_KEY_REGEX: Lazy = lazy_regex!(r"\{(.*?)\}"); +static FMT_ATTR_REGEX: Lazy = lazy_regex!(r"(?:([A-Z]+))(:?([0-9]+))?(:?(.+))?"); /// Call Chain block is a block in a chain of functions which are called in order to format the File. /// A callChain is instantiated starting from the Formatter syntax and the regex, once the groups are found diff --git a/src/main.rs b/src/main.rs index 5e05eeb..51d8fe9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,8 @@ const TERMSCP_AUTHORS: &str = env!("CARGO_PKG_AUTHORS"); #[macro_use] extern crate bitflags; #[macro_use] +extern crate lazy_regex; +#[macro_use] extern crate lazy_static; #[macro_use] extern crate log; diff --git a/src/utils/parser.rs b/src/utils/parser.rs index ce80601..d879b64 100644 --- a/src/utils/parser.rs +++ b/src/utils/parser.rs @@ -14,56 +14,57 @@ use crate::system::environment; // Ext use bytesize::ByteSize; -use regex::Regex; +use lazy_regex::{Lazy, Regex}; use std::path::PathBuf; use std::str::FromStr; use tuirealm::tui::style::Color; use tuirealm::utils::parser as tuirealm_parser; // Regex -lazy_static! { - /** - * This regex matches the protocol used as option - * Regex matches: - * - group 1: Some(protocol) | None - * - group 2: Some(other args) - */ - static ref REMOTE_OPT_PROTOCOL_REGEX: Regex = Regex::new(r"(?:([a-z0-9]+)://)?(?:(.+))").unwrap(); +/** + * This regex matches the protocol used as option + * Regex matches: + * - group 1: Some(protocol) | None + * - group 2: Some(other args) + */ +static REMOTE_OPT_PROTOCOL_REGEX: Lazy = lazy_regex!(r"(?:([a-z0-9]+)://)?(?:(.+))"); - /** - * Regex matches: - * - group 1: Some(user) | None - * - group 2: Address - * - group 3: Some(port) | None - * - group 4: Some(path) | None - */ - static ref REMOTE_GENERIC_OPT_REGEX: Regex = Regex::new(r"(?:([^@]+)@)?(?:([^:]+))(?::((?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])))?(?::([^:]+))?").ok().unwrap(); +/** + * Regex matches: + * - group 1: Some(user) | None + * - group 2: Address + * - group 3: Some(port) | None + * - group 4: Some(path) | None + */ +static REMOTE_GENERIC_OPT_REGEX: Lazy = lazy_regex!( + r"(?:([^@]+)@)?(?:([^:]+))(?::((?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(?:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])))?(?::([^:]+))?" +); - /** - * Regex matches: - * - group 1: Bucket - * - group 2: Region - * - group 3: Some(profile) | None - * - group 4: Some(path) | None - */ - static ref REMOTE_S3_OPT_REGEX: Regex = Regex::new(r"(?:([^@]+)@)(?:([^:]+))(?::([a-zA-Z0-9][^:]+))?(?::([^:]+))?").unwrap(); +/** + * Regex matches: + * - group 1: Bucket + * - group 2: Region + * - group 3: Some(profile) | None + * - group 4: Some(path) | None + */ +static REMOTE_S3_OPT_REGEX: Lazy = + lazy_regex!(r"(?:([^@]+)@)(?:([^:]+))(?::([a-zA-Z0-9][^:]+))?(?::([^:]+))?"); - /** - * Regex matches: - * - group 1: Version - * E.g. termscp-0.3.2 => 0.3.2 - * v0.4.0 => 0.4.0 - */ - static ref SEMVER_REGEX: Regex = Regex::new(r".*(:?[0-9]\.[0-9]\.[0-9])").unwrap(); +/** + * Regex matches: + * - group 1: Version + * E.g. termscp-0.3.2 => 0.3.2 + * v0.4.0 => 0.4.0 + */ +static SEMVER_REGEX: Lazy = lazy_regex!(r".*(:?[0-9]\.[0-9]\.[0-9])"); - /** - * Regex matches: - * - group 1: amount (number) - * - group 4: unit (K, M, G, T, P) - */ - static ref BYTESIZE_REGEX: Regex = Regex::new(r"(:?([0-9])+)( )*(:?[KMGTP])?B$").unwrap(); -} +/** + * Regex matches: + * - group 1: amount (number) + * - group 4: unit (K, M, G, T, P) + */ +static BYTESIZE_REGEX: Lazy = lazy_regex!(r"(:?([0-9])+)( )*(:?[KMGTP])?B$"); // -- remote opts From cce0c92c0be16c86f40f644ef2a88da0ef5a2043 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 17 Aug 2022 10:28:44 +0200 Subject: [PATCH 03/15] dependencies updated --- CHANGELOG.md | 6 + Cargo.lock | 562 ++++++++++++++++++++++++--------------------------- Cargo.toml | 16 +- 3 files changed, 279 insertions(+), 305 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a49c09..d97ff5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,8 +33,14 @@ Released on ?? > ⭐ 500 stars update 🌟 - Dependencies: + - Bump `argh` to `0.1.8` + - Bump `chrono` to `0.4.22` + - Bump `keyring` to `1.2.0` + - Bump `open` to `3.0.2` - Changed `regex` to `lazy-regex 2.3.0` - Bump `tuirealm` to `1.8.0` + - Bump `tui-realm-stdlib` to `1.1.7` + - Bump `wildmatch` to `2.1.1` ## 0.9.0 diff --git a/Cargo.lock b/Cargo.lock index 71ac908..7569980 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,17 +8,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", -] - [[package]] name = "aes" version = "0.7.5" @@ -26,31 +15,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug", ] -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher 0.2.5", - "opaque-debug", -] - [[package]] name = "ahash" version = "0.4.7" @@ -66,6 +35,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -77,15 +55,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" [[package]] name = "argh" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb41d85d92dfab96cb95ab023c265c5e4261bb956c0fb49ca06d90c570f1958" +checksum = "a7e7e4aa7e40747e023c0761dafcb42333a9517575bbf1241747f68dd3177a62" dependencies = [ "argh_derive", "argh_shared", @@ -93,9 +71,9 @@ dependencies = [ [[package]] name = "argh_derive" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be69f70ef5497dd6ab331a50bd95c6ac6b8f7f17a7967838332743fbd58dc3b5" +checksum = "69f2bd7ff6ed6414f4e5521bd509bae46454bbd513801767ced3f21a751ab4bc" dependencies = [ "argh_shared", "heck", @@ -106,9 +84,9 @@ dependencies = [ [[package]] name = "argh_shared" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f8c380fa28aa1b36107cd97f0196474bb7241bb95a453c5c01a15ac74b2eac" +checksum = "47253b98986dafc7a3e1cf3259194f1f47ac61abb57a57f46ec09e48d004ecda" [[package]] name = "async-io" @@ -131,9 +109,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ "proc-macro2", "quote", @@ -215,16 +193,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-modes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" -dependencies = [ - "block-padding", - "cipher 0.2.5", -] - [[package]] name = "block-modes" version = "0.8.1" @@ -232,7 +200,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e" dependencies = [ "block-padding", - "cipher 0.3.0", + "cipher", ] [[package]] @@ -255,9 +223,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "bytesize" @@ -297,26 +265,19 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "time 0.1.44", + "wasm-bindgen", "winapi 0.3.9", ] -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array", -] - [[package]] name = "cipher" version = "0.3.0" @@ -328,18 +289,18 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.2" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" dependencies = [ "cache-padded", ] [[package]] name = "console" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" dependencies = [ "encode_unicode", "libc", @@ -402,24 +363,24 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if 1.0.0", - "lazy_static", + "once_cell", ] [[package]] name = "crossterm" -version = "0.23.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2102ea4f781910f8a5b98dd061f4c2023f479ce7bb1236330099ceb5a93cf17" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" dependencies = [ "bitflags", "crossterm_winapi", "libc", - "mio 0.8.3", + "mio 0.8.4", "parking_lot 0.12.1", "signal-hook", "signal-hook-mio", @@ -435,16 +396,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "crypto-mac" version = "0.11.1" @@ -457,19 +408,31 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" dependencies = [ "quote", "syn", ] [[package]] -name = "dbus" -version = "0.9.5" +name = "dashmap" +version = "5.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0a745c25b32caa56b82a3950f5fec7893a960f4c10ca3b02060b0c38d8c2ce" +checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" +dependencies = [ + "cfg-if 1.0.0", + "hashbrown 0.12.3", + "lock_api", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "dbus" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" dependencies = [ "libc", "libdbus-sys", @@ -500,15 +463,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac41dd49fb554432020d52c875fc290e110113f864c6b1b525cd62c7e7747a5d" dependencies = [ "byteorder", - "cipher 0.3.0", + "cipher", "opaque-debug", ] [[package]] name = "diff" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "digest" @@ -581,9 +544,9 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "encode_unicode" @@ -623,23 +586,23 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi 0.3.9", + "windows-sys", ] [[package]] @@ -720,9 +683,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" dependencies = [ "futures-channel", "futures-core", @@ -735,9 +698,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" dependencies = [ "futures-core", "futures-sink", @@ -745,15 +708,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" dependencies = [ "futures-core", "futures-task", @@ -762,9 +725,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" [[package]] name = "futures-lite" @@ -783,9 +746,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" dependencies = [ "proc-macro2", "quote", @@ -794,21 +757,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" dependencies = [ "futures-channel", "futures-core", @@ -824,9 +787,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -834,20 +797,20 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -873,9 +836,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" @@ -903,22 +866,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" +checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" dependencies = [ "digest", - "hmac 0.10.1", -] - -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.1", - "digest", + "hmac", ] [[package]] @@ -927,7 +880,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac", "digest", ] @@ -978,9 +931,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "hyper" -version = "0.14.19" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -1013,6 +966,19 @@ dependencies = [ "tokio-native-tls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "wasm-bindgen", + "winapi 0.3.9", +] + [[package]] name = "idna" version = "0.2.3" @@ -1026,12 +992,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.2" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown 0.11.2", + "hashbrown 0.12.3", ] [[package]] @@ -1092,15 +1058,15 @@ checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -1117,9 +1083,9 @@ dependencies = [ [[package]] name = "keyring" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "894a58932447ecc241a3545135bdfd26ac0e611295b391904ce0b085310ab38c" +checksum = "38fb8399ddcabfccb274577a8d90f0653e0b5b5977797c1c8834ad09839a10e5" dependencies = [ "byteorder", "secret-service", @@ -1164,9 +1130,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libdbus-sys" @@ -1224,15 +1190,15 @@ dependencies = [ [[package]] name = "mac-notification-sys" -version = "0.5.0" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297c13fc8ff9fa8b2d0e53850f80e0aa962628e865d447031ce58cdb062e5b29" +checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" dependencies = [ "cc", "dirs-next", "objc-foundation", "objc_id", - "time 0.3.9", + "time 0.3.13", ] [[package]] @@ -1241,9 +1207,9 @@ version = "3.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c913782c21b53ad246863641fffbaf73a9eb32ff0d939b10d361b7294e2ea9c" dependencies = [ - "aes 0.7.5", + "aes", "base64", - "block-modes 0.8.1", + "block-modes", "crc-any", "des", "digest", @@ -1307,6 +1273,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.16" @@ -1343,9 +1318,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", @@ -1418,15 +1393,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.17.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" +checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" dependencies = [ "bitflags", "cc", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", - "void", + "memoffset", ] [[package]] @@ -1460,9 +1435,9 @@ dependencies = [ [[package]] name = "num" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" dependencies = [ "num-bigint", "num-complex", @@ -1474,9 +1449,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ "autocfg", "num-integer", @@ -1485,9 +1460,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" dependencies = [ "num-traits", ] @@ -1515,9 +1490,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", "num-bigint", @@ -1590,9 +1565,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" [[package]] name = "opaque-debug" @@ -1602,9 +1577,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "2.1.3" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2423ffbf445b82e58c3b1543655968923dd06f85432f10be2bb4f1b7122f98c" +checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045" dependencies = [ "pathdiff", "windows-sys", @@ -1612,9 +1587,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.40" +version = "0.10.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" +checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -1653,9 +1628,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.74" +version = "0.9.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1" +checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" dependencies = [ "autocfg", "cc", @@ -1740,9 +1715,9 @@ dependencies = [ [[package]] name = "path-slash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cacbb3c4ff353b534a67fb8d7524d00229da4cb1dc8c79f4db96e375ab5b619" +checksum = "498a099351efa4becc6a19c72aa9270598e8fd274ca47052e37455241c88b696" [[package]] name = "pathdiff" @@ -1816,10 +1791,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -1850,9 +1826,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ "unicode-ident", ] @@ -1868,9 +1844,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] @@ -1907,9 +1883,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -1927,9 +1903,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.6" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -1938,9 +1914,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.26" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remotefs" @@ -2010,9 +1986,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ "base64", "bytes", @@ -2037,6 +2013,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2081,7 +2058,7 @@ dependencies = [ "cfg-if 1.0.0", "chrono", "hex", - "hmac 0.11.0", + "hmac", "http", "log", "maybe-async", @@ -2095,17 +2072,11 @@ dependencies = [ "url", ] -[[package]] -name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "same-file" @@ -2140,12 +2111,12 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "secret-service" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2400fb1bf2a87b303ada204946294f932ade4929477e9e2bf66d7b49a66656ec" +checksum = "e1da5c423b8783185fd3fecd1c8796c267d2c089d894ce5a93c280a5d3f780a2" dependencies = [ - "aes 0.6.0", - "block-modes 0.7.0", + "aes", + "block-modes", "hkdf", "lazy_static", "num", @@ -2204,15 +2175,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" dependencies = [ "serde_derive", ] @@ -2231,9 +2202,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" dependencies = [ "proc-macro2", "quote", @@ -2242,9 +2213,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" dependencies = [ "itoa", "ryu", @@ -2253,9 +2224,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ "proc-macro2", "quote", @@ -2276,10 +2247,12 @@ dependencies = [ [[package]] name = "serial_test" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19dbfb999a147cedbfe82f042eb9555f5b0fa4ef95ee4570b74349103d9c9f4" +checksum = "92761393ee4dc3ff8f4af487bd58f4307c9329bbedea02cac0089ad9c411e153" dependencies = [ + "dashmap", + "futures", "lazy_static", "log", "parking_lot 0.12.1", @@ -2288,14 +2261,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9e2050b2be1d681f8f1c1a528bcfe4e00afa2d8995f713974f5333288659f2" +checksum = "4b6f5d1c3087fb119617cff2966fe3808a80e5eb59a8c1601d5994d66f4346a5" dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "rustversion", "syn", ] @@ -2329,7 +2301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" dependencies = [ "libc", - "mio 0.8.3", + "mio 0.8.4", "signal-hook", ] @@ -2350,20 +2322,23 @@ checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786" dependencies = [ "log", "termcolor", - "time 0.3.9", + "time 0.3.13", ] [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "smawk" @@ -2439,23 +2414,22 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "suppaftp" -version = "4.2.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c42610de5ed0db28274b24c010aa530ebc391e5a4e9bd44a08e9daa8a245cc5" +checksum = "374fa36af4a114155280ba725b6487d78ec4ed8e54c69fe80f59805ffed9cd65" dependencies = [ "chrono", - "lazy_static", + "lazy-regex", "log", "native-tls", - "regex", "thiserror", ] [[package]] name = "syn" -version = "1.0.96" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ "proc-macro2", "quote", @@ -2550,9 +2524,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" dependencies = [ "smawk", "unicode-linebreak", @@ -2561,18 +2535,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" dependencies = [ "proc-macro2", "quote", @@ -2603,9 +2577,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" dependencies = [ "itoa", "libc", @@ -2636,14 +2610,15 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.19.2" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" +checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" dependencies = [ + "autocfg", "bytes", "libc", "memchr", - "mio 0.8.3", + "mio 0.8.4", "num_cpus", "once_cell", "pin-project-lite", @@ -2697,15 +2672,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -2714,9 +2689,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.27" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ "once_cell", ] @@ -2729,9 +2704,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tui" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fe69244ec2af261bced1d9046a6fee6c8c2a6b0228e59e5ba39bc8ba4ed729" +checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1" dependencies = [ "bitflags", "cassowary", @@ -2742,9 +2717,9 @@ dependencies = [ [[package]] name = "tui-realm-stdlib" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0566e37c05db854178698583e6bad03fdbcfdef8b389294c6934efc18c32f620" +checksum = "e08728483414e0bcb385f6fa11df99b4b273813d11ee38aa30db12e6db30bc66" dependencies = [ "textwrap", "tuirealm", @@ -2753,14 +2728,13 @@ dependencies = [ [[package]] name = "tuirealm" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef13e401c3c7d1f1b51d6193409d231c316057ad088431467a4e6882b4e25447" +checksum = "265411b5606f400459af94fbc5aae6a7bc0e98094d08cb5868390c932be88e26" dependencies = [ "bitflags", "crossterm", - "lazy_static", - "regex", + "lazy-regex", "thiserror", "tui", "tuirealm_derive", @@ -2791,9 +2765,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "unicode-linebreak" @@ -2806,9 +2780,9 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -2859,12 +2833,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - [[package]] name = "waker-fn" version = "1.1.0" @@ -2906,9 +2874,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2916,13 +2884,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -2931,9 +2899,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2943,9 +2911,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2953,9 +2921,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -2966,15 +2934,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -3012,9 +2980,9 @@ dependencies = [ [[package]] name = "wildmatch" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c48bd20df7e4ced539c12f570f937c6b4884928a87fee70a479d72f031d4e0" +checksum = "ee583bdc5ff1cf9db20e9db5bb3ff4c3089a8f6b8b31aff265c9aba85812db86" [[package]] name = "winapi" @@ -3185,9 +3153,9 @@ checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" [[package]] name = "zbus" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2326acc379a3ac4e34b794089f5bdb17086bf29a5fdf619b7b4cc772dc2e9dad" +checksum = "9cbeb2291cd7267a94489b71376eda33496c1b9881adf6b36f26cc2779f3fc49" dependencies = [ "async-io", "byteorder", @@ -3208,9 +3176,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a482c56029e48681b89b92b5db3c446db0915e8dd1052c0328a574eda38d5f93" +checksum = "fa3959a7847cf95e3d51e312856617c5b1b77191176c65a79a5f14d778bbe0a6" dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", @@ -3228,7 +3196,7 @@ dependencies = [ "crc32fast", "crossbeam-utils", "flate2", - "time 0.3.9", + "time 0.3.13", ] [[package]] @@ -3251,7 +3219,7 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4ca5e22593eb4212382d60d26350065bf2a02c34b85bc850474a74b589a3de9" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 1.2.1", "proc-macro2", "quote", "syn", diff --git a/Cargo.toml b/Cargo.toml index b6fe884..40b1d3e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,22 +31,22 @@ name = "termscp" path = "src/main.rs" [dependencies] -argh = "0.1.7" +argh = "0.1.8" bitflags = "1.3.2" bytesize = "1.1.0" -chrono = "0.4.19" +chrono = "0.4.22" content_inspector = "0.2.4" dirs = "4.0.0" edit = "0.1.4" hostname = "0.3.1" -keyring = { version = "1.1.2", optional = true } +keyring = { version = "1.2.0", optional = true } lazy-regex = "^2.3.0" lazy_static = "1.4.0" log = "0.4.17" magic-crypt = "3.1.10" notify = "4.0.17" notify-rust = { version = "4.5.6", default-features = false, features = [ "d" ] } -open = "2.1.3" +open = "3.0.2" rand = "0.8.5" remotefs = "^0.2.0" remotefs-aws-s3 = "^0.2.0" @@ -59,15 +59,15 @@ simplelog = "0.12.0" tempfile = "3.2.0" thiserror = "^1.0.0" toml = "0.5.0" -tui-realm-stdlib = "1.1.6" -tuirealm = "1.6.0" +tui-realm-stdlib = "1.1.7" +tuirealm = "1.8.0" unicode-width = "0.1.8" whoami = "1.2.1" -wildmatch = "2.1.0" +wildmatch = "2.1.1" [dev-dependencies] pretty_assertions = "1.2.1" -serial_test = "^0.7.0" +serial_test = "^0.9.0" [features] default = [ "with-keyring" ] From a22c5025d7e9ac043d26038f8415afeddd5616ec Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 17 Aug 2022 10:33:31 +0200 Subject: [PATCH 04/15] lint --- Cargo.toml | 2 +- src/config/bookmarks.rs | 4 ++-- src/config/params.rs | 2 +- src/config/themes.rs | 2 +- src/explorer/mod.rs | 14 +++++++------- src/filetransfer/mod.rs | 2 +- src/host/mod.rs | 12 ++++++------ src/system/config_client.rs | 2 +- src/system/environment.rs | 8 ++++---- src/system/keys/filestorage.rs | 2 +- src/system/keys/mod.rs | 2 +- src/system/sshkey_storage.rs | 2 +- src/ui/activities/auth/mod.rs | 6 +++--- src/ui/activities/filetransfer/misc.rs | 2 +- src/ui/activities/filetransfer/update.rs | 12 ++++++------ src/ui/activities/filetransfer/view.rs | 4 ++-- src/ui/activities/setup/components/config.rs | 2 +- src/ui/activities/setup/mod.rs | 12 ++++++------ src/utils/crypto.rs | 2 +- src/utils/fmt.rs | 6 +++--- src/utils/path.rs | 4 ++-- 21 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 40b1d3e..ca1f581 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -authors = ["Christian Visintin"] +authors = ["Christian Visintin "] categories = ["command-line-utilities"] description = "termscp is a feature rich terminal file transfer and explorer with support for SCP/SFTP/FTP/S3" edition = "2021" diff --git a/src/config/bookmarks.rs b/src/config/bookmarks.rs index 5e1dc0d..46d148d 100644 --- a/src/config/bookmarks.rs +++ b/src/config/bookmarks.rs @@ -19,7 +19,7 @@ pub struct UserHosts { } /// Bookmark describes a single bookmark entry in the user hosts storage -#[derive(Clone, Deserialize, Serialize, Debug, PartialEq)] +#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq)] pub struct Bookmark { #[serde( deserialize_with = "deserialize_protocol", @@ -41,7 +41,7 @@ pub struct Bookmark { } /// Connection parameters for Aws s3 protocol -#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Default)] +#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq, Default)] pub struct S3Params { pub bucket: String, pub region: Option, diff --git a/src/config/params.rs b/src/config/params.rs index 3594c4e..e99df84 100644 --- a/src/config/params.rs +++ b/src/config/params.rs @@ -106,7 +106,7 @@ mod tests { assert_eq!(ui.file_fmt, Some(String::from("{NAME}"))); let cfg: UserConfig = UserConfig { user_interface: ui, - remote: remote, + remote, }; assert_eq!( *cfg.remote diff --git a/src/config/themes.rs b/src/config/themes.rs index b86d096..472a8ba 100644 --- a/src/config/themes.rs +++ b/src/config/themes.rs @@ -12,7 +12,7 @@ use tuirealm::tui::style::Color; /// ### Theme /// /// Theme contains all the colors lookup table for termscp -#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)] pub struct Theme { // -- auth #[serde( diff --git a/src/explorer/mod.rs b/src/explorer/mod.rs index 40298fa..84adb57 100644 --- a/src/explorer/mod.rs +++ b/src/explorer/mod.rs @@ -25,7 +25,7 @@ bitflags! { } /// FileSorting defines the criteria for sorting files -#[derive(Copy, Clone, PartialEq, std::fmt::Debug)] +#[derive(Copy, Clone, PartialEq, Eq, std::fmt::Debug)] pub enum FileSorting { Name, ModifyTime, @@ -34,7 +34,7 @@ pub enum FileSorting { } /// GroupDirs defines how directories should be grouped in sorting files -#[derive(PartialEq, std::fmt::Debug)] +#[derive(PartialEq, Eq, std::fmt::Debug)] pub enum GroupDirs { First, Last, @@ -318,8 +318,8 @@ mod tests { explorer.stack_size = 2; explorer.dirstack = VecDeque::with_capacity(2); // Push dir - explorer.pushd(&Path::new("/tmp")); - explorer.pushd(&Path::new("/home/omar")); + explorer.pushd(Path::new("/tmp")); + explorer.pushd(Path::new("/home/omar")); // Pop assert_eq!(explorer.popd().unwrap(), PathBuf::from("/home/omar")); assert_eq!(explorer.dirstack.len(), 1); @@ -328,9 +328,9 @@ mod tests { // Dirstack is empty now assert!(explorer.popd().is_none()); // Exceed limit - explorer.pushd(&Path::new("/tmp")); - explorer.pushd(&Path::new("/home/omar")); - explorer.pushd(&Path::new("/dev")); + explorer.pushd(Path::new("/tmp")); + explorer.pushd(Path::new("/home/omar")); + explorer.pushd(Path::new("/dev")); assert_eq!(explorer.dirstack.len(), 2); assert_eq!(*explorer.dirstack.get(1).unwrap(), PathBuf::from("/dev")); assert_eq!( diff --git a/src/filetransfer/mod.rs b/src/filetransfer/mod.rs index 8a2138a..a5c9501 100644 --- a/src/filetransfer/mod.rs +++ b/src/filetransfer/mod.rs @@ -11,7 +11,7 @@ pub use params::{FileTransferParams, ProtocolParams}; /// This enum defines the different transfer protocol available in termscp -#[derive(PartialEq, Debug, Clone, Copy)] +#[derive(PartialEq, Eq, Debug, Clone, Copy)] pub enum FileTransferProtocol { Sftp, Scp, diff --git a/src/host/mod.rs b/src/host/mod.rs index 75e1a57..a64c0f0 100644 --- a/src/host/mod.rs +++ b/src/host/mod.rs @@ -654,7 +654,7 @@ mod tests { let entries = std::fs::read_dir(PathBuf::from("/dev").as_path()).unwrap(); let mut counter: usize = 0; for _ in entries { - counter = counter + 1; + counter += 1; } assert_eq!(host.files.len(), counter); } @@ -696,7 +696,7 @@ mod tests { let entries = std::fs::read_dir(PathBuf::from("/dev").as_path()).unwrap(); let mut counter: usize = 0; for _ in entries { - counter = counter + 1; + counter += 1; } assert_eq!(host.list_dir().len(), counter); } @@ -709,10 +709,10 @@ mod tests { assert!(host.change_wrkdir(new_dir.as_path()).is_ok()); // Verify new files // Scan dir - let entries = std::fs::read_dir(PathBuf::from(new_dir).as_path()).unwrap(); + let entries = std::fs::read_dir(new_dir.as_path()).unwrap(); let mut counter: usize = 0; for _ in entries { - counter = counter + 1; + counter += 1; } assert_eq!(host.files.len(), counter); } @@ -793,7 +793,7 @@ mod tests { let files: Vec = host.list_dir(); // Verify files let file_0: &File = files.get(0).unwrap(); - if file_0.name() == String::from("foo.txt") { + if file_0.name() == *"foo.txt" { assert!(file_0.metadata.symlink.is_none()); } else { assert_eq!( @@ -803,7 +803,7 @@ mod tests { } // Verify simlink let file_1: &File = files.get(1).unwrap(); - if file_1.name() == String::from("bar.txt") { + if file_1.name() == *"bar.txt" { assert_eq!( file_1.metadata.symlink.as_ref().unwrap(), &PathBuf::from(format!("{}/foo.txt", tmpdir.path().display())) diff --git a/src/system/config_client.rs b/src/system/config_client.rs index 42052c3..6ac81f4 100644 --- a/src/system/config_client.rs +++ b/src/system/config_client.rs @@ -491,7 +491,7 @@ mod tests { // Verify client has updated parameters assert_eq!(client.get_default_protocol(), FileTransferProtocol::Scp); assert_eq!(client.get_text_editor(), PathBuf::from("/usr/bin/vim")); - let mut expected_key_path: PathBuf = key_path.clone(); + let mut expected_key_path: PathBuf = key_path; expected_key_path.push("pi@192.168.1.31.key"); assert_eq!( client.get_ssh_key("pi@192.168.1.31").unwrap().unwrap(), diff --git a/src/system/environment.rs b/src/system/environment.rs index 1914412..7839bf1 100644 --- a/src/system/environment.rs +++ b/src/system/environment.rs @@ -126,7 +126,7 @@ mod tests { #[serial] fn test_system_environment_get_bookmarks_paths() { assert_eq!( - get_bookmarks_paths(&Path::new("/home/omar/.config/termscp/")), + get_bookmarks_paths(Path::new("/home/omar/.config/termscp/")), PathBuf::from("/home/omar/.config/termscp/bookmarks.toml"), ); } @@ -135,7 +135,7 @@ mod tests { #[serial] fn test_system_environment_get_config_paths() { assert_eq!( - get_config_paths(&Path::new("/home/omar/.config/termscp/")), + get_config_paths(Path::new("/home/omar/.config/termscp/")), ( PathBuf::from("/home/omar/.config/termscp/config.toml"), PathBuf::from("/home/omar/.config/termscp/.ssh/") @@ -147,7 +147,7 @@ mod tests { #[serial] fn test_system_environment_get_log_paths() { assert_eq!( - get_log_paths(&Path::new("/home/omar/.config/termscp/")), + get_log_paths(Path::new("/home/omar/.config/termscp/")), PathBuf::from("/home/omar/.config/termscp/termscp.log"), ); } @@ -156,7 +156,7 @@ mod tests { #[serial] fn test_system_environment_get_theme_path() { assert_eq!( - get_theme_path(&Path::new("/home/omar/.config/termscp/")), + get_theme_path(Path::new("/home/omar/.config/termscp/")), PathBuf::from("/home/omar/.config/termscp/theme.toml"), ); } diff --git a/src/system/keys/filestorage.rs b/src/system/keys/filestorage.rs index ee6a7d3..7d2b318 100644 --- a/src/system/keys/filestorage.rs +++ b/src/system/keys/filestorage.rs @@ -96,7 +96,7 @@ mod tests { #[test] fn test_system_keys_filestorage_make_dir() { - let storage: FileStorage = FileStorage::new(&Path::new("/tmp/")); + let storage: FileStorage = FileStorage::new(Path::new("/tmp/")); assert_eq!( storage.make_file_path("bookmarks").as_path(), Path::new("/tmp/.bookmarks.key") diff --git a/src/system/keys/mod.rs b/src/system/keys/mod.rs index a2186ba..10f3597 100644 --- a/src/system/keys/mod.rs +++ b/src/system/keys/mod.rs @@ -10,7 +10,7 @@ pub mod keyringstorage; use thiserror::Error; /// defines the error type for the `KeyStorage` -#[derive(Debug, Error, PartialEq)] +#[derive(Debug, Error, PartialEq, Eq)] pub enum KeyStorageError { #[cfg(feature = "with-keyring")] #[error("Key has a bad syntax")] diff --git a/src/system/sshkey_storage.rs b/src/system/sshkey_storage.rs index c16f190..1b3cace 100644 --- a/src/system/sshkey_storage.rs +++ b/src/system/sshkey_storage.rs @@ -93,7 +93,7 @@ mod tests { // Create ssh key storage let storage: SshKeyStorage = SshKeyStorage::from(&client); // Verify key exists - let mut exp_key_path: PathBuf = key_path.clone(); + let mut exp_key_path: PathBuf = key_path; exp_key_path.push("pi@192.168.1.31.key"); assert_eq!( *storage.resolve("192.168.1.31", "pi").unwrap(), diff --git a/src/ui/activities/auth/mod.rs b/src/ui/activities/auth/mod.rs index 07620a8..c32295b 100644 --- a/src/ui/activities/auth/mod.rs +++ b/src/ui/activities/auth/mod.rs @@ -60,14 +60,14 @@ pub enum Id { WindowSizeError, } -#[derive(Debug, PartialEq)] +#[derive(Debug, Eq, PartialEq)] pub enum Msg { Form(FormMsg), Ui(UiMsg), None, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum FormMsg { Connect, DeleteBookmark, @@ -81,7 +81,7 @@ pub enum FormMsg { SaveBookmark, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum UiMsg { AddressBlurDown, AddressBlurUp, diff --git a/src/ui/activities/filetransfer/misc.rs b/src/ui/activities/filetransfer/misc.rs index f16e9c1..fc78a78 100644 --- a/src/ui/activities/filetransfer/misc.rs +++ b/src/ui/activities/filetransfer/misc.rs @@ -208,7 +208,7 @@ impl FileTransferActivity { Ok(h) => { let hostname: String = h.as_os_str().to_string_lossy().to_string(); let tokens: Vec<&str> = hostname.split('.').collect(); - String::from(*tokens.get(0).unwrap_or(&"localhost")) + String::from(*tokens.first().unwrap_or(&"localhost")) } Err(_) => String::from("localhost"), }; diff --git a/src/ui/activities/filetransfer/update.rs b/src/ui/activities/filetransfer/update.rs index 103085e..04dff97 100644 --- a/src/ui/activities/filetransfer/update.rs +++ b/src/ui/activities/filetransfer/update.rs @@ -102,7 +102,7 @@ impl FileTransferActivity { self.action_submit_local(entry); // Update file list if sync if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_remote_filelist(); + self.update_remote_filelist(); } self.update_local_filelist(); } @@ -112,7 +112,7 @@ impl FileTransferActivity { self.action_submit_remote(entry); // Update file list if sync if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_local_filelist(); + self.update_local_filelist(); } self.update_remote_filelist(); } @@ -161,7 +161,7 @@ impl FileTransferActivity { FileExplorerTab::Local => { self.action_go_to_local_upper_dir(); if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_remote_filelist(); + self.update_remote_filelist(); } // Reload file list component self.update_local_filelist() @@ -169,7 +169,7 @@ impl FileTransferActivity { FileExplorerTab::Remote => { self.action_go_to_remote_upper_dir(); if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_local_filelist(); + self.update_local_filelist(); } // Reload file list component self.update_remote_filelist() @@ -182,7 +182,7 @@ impl FileTransferActivity { FileExplorerTab::Local => { self.action_go_to_previous_local_dir(); if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_remote_filelist(); + self.update_remote_filelist(); } // Reload file list component self.update_local_filelist() @@ -190,7 +190,7 @@ impl FileTransferActivity { FileExplorerTab::Remote => { self.action_go_to_previous_remote_dir(); if self.browser.sync_browsing && self.browser.found().is_none() { - let _ = self.update_local_filelist(); + self.update_local_filelist(); } // Reload file list component self.update_remote_filelist() diff --git a/src/ui/activities/filetransfer/view.rs b/src/ui/activities/filetransfer/view.rs index f104b2b..c69d973 100644 --- a/src/ui/activities/filetransfer/view.rs +++ b/src/ui/activities/filetransfer/view.rs @@ -80,8 +80,8 @@ impl FileTransferActivity { self.refresh_local_status_bar(); self.refresh_remote_status_bar(); // Update components - let _ = self.update_local_filelist(); - let _ = self.update_remote_filelist(); + self.update_local_filelist(); + self.update_remote_filelist(); // Global listener self.mount_global_listener(); // Give focus to local explorer diff --git a/src/ui/activities/setup/components/config.rs b/src/ui/activities/setup/components/config.rs index 3f75557..ed41f05 100644 --- a/src/ui/activities/setup/components/config.rs +++ b/src/ui/activities/setup/components/config.rs @@ -278,7 +278,7 @@ impl NotificationsThreshold { parse_bytesize(bytes).is_some() } fn char_valid(_input: &str, incoming: char) -> bool { - incoming.is_digit(10) || ['B', 'K', 'M', 'G', 'T', 'P'].contains(&incoming) + incoming.is_ascii_digit() || ['B', 'K', 'M', 'G', 'T', 'P'].contains(&incoming) } Self { component: Input::default() diff --git a/src/ui/activities/setup/mod.rs b/src/ui/activities/setup/mod.rs index 2b7c5b9..e0b9940 100644 --- a/src/ui/activities/setup/mod.rs +++ b/src/ui/activities/setup/mod.rs @@ -99,7 +99,7 @@ pub enum IdTheme { TransferTitle2, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum Msg { Common(CommonMsg), Config(ConfigMsg), @@ -108,7 +108,7 @@ pub enum Msg { None, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum CommonMsg { ChangeLayout, CloseErrorPopup, @@ -125,7 +125,7 @@ pub enum CommonMsg { WindowResized, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum ConfigMsg { CheckUpdatesBlurDown, CheckUpdatesBlurUp, @@ -152,7 +152,7 @@ pub enum ConfigMsg { TextEditorBlurUp, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum SshMsg { CloseDelSshKeyPopup, CloseNewSshKeyPopup, @@ -165,7 +165,7 @@ pub enum SshMsg { SshUsernameBlur, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum ThemeMsg { AuthAddressBlurDown, AuthAddressBlurUp, @@ -230,7 +230,7 @@ const STORE_CONFIG_CHANGED: &str = "SETUP_CONFIG_CHANGED"; /// ### ViewLayout /// /// Current view layout -#[derive(PartialEq)] +#[derive(PartialEq, Eq)] pub enum ViewLayout { SetupForm, SshKeys, diff --git a/src/utils/crypto.rs b/src/utils/crypto.rs index 62eaee5..6cc8b13 100644 --- a/src/utils/crypto.rs +++ b/src/utils/crypto.rs @@ -32,7 +32,7 @@ mod tests { fn test_utils_crypto_aes128() { let key: &str = "MYSUPERSECRETKEY"; let input: &str = "Hello world!"; - let secret: String = aes128_b64_crypt(&key, input); + let secret: String = aes128_b64_crypt(key, input); assert_eq!(secret.as_str(), "z4Z6LpcpYqBW4+bkIok+5A=="); assert_eq!( aes128_b64_decrypt(key, secret.as_str()) diff --git a/src/utils/fmt.rs b/src/utils/fmt.rs index 3822102..044bc64 100644 --- a/src/utils/fmt.rs +++ b/src/utils/fmt.rs @@ -300,7 +300,7 @@ mod tests { #[test] fn test_utils_fmt_time() { - let system_time: SystemTime = SystemTime::from(SystemTime::UNIX_EPOCH); + let system_time: SystemTime = SystemTime::UNIX_EPOCH; assert_eq!( fmt_time(system_time, "%Y-%m-%d"), String::from("1970-01-01") @@ -326,12 +326,12 @@ mod tests { #[test] #[cfg(target_family = "unix")] fn test_utils_fmt_path_elide() { - let p: &Path = &Path::new("/develop/pippo"); + let p: &Path = Path::new("/develop/pippo"); // Under max size assert_eq!(fmt_path_elide(p, 16), String::from("/develop/pippo")); // Above max size, only one ancestor assert_eq!(fmt_path_elide(p, 8), String::from("/develop/pippo")); - let p: &Path = &Path::new("/develop/pippo/foo/bar"); + let p: &Path = Path::new("/develop/pippo/foo/bar"); assert_eq!(fmt_path_elide(p, 16), String::from("/develop/…/foo/bar")); } diff --git a/src/utils/path.rs b/src/utils/path.rs index db6f36e..5c162be 100644 --- a/src/utils/path.rs +++ b/src/utils/path.rs @@ -94,11 +94,11 @@ mod test { #[test] fn absolutize_path() { assert_eq!( - absolutize(&Path::new("/home/omar"), &Path::new("readme.txt")).as_path(), + absolutize(Path::new("/home/omar"), Path::new("readme.txt")).as_path(), Path::new("/home/omar/readme.txt") ); assert_eq!( - absolutize(&Path::new("/home/omar"), &Path::new("/tmp/readme.txt")).as_path(), + absolutize(Path::new("/home/omar"), Path::new("/tmp/readme.txt")).as_path(), Path::new("/tmp/readme.txt") ); } From 96df152220402b9007a28627eca3f6c658cdd03a Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 30 Aug 2022 15:10:41 +0200 Subject: [PATCH 05/15] fixed issue 122 --- CHANGELOG.md | 2 ++ src/ui/activities/setup/components/ssh.rs | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d97ff5d..d255f80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ Released on ?? > ⭐ 500 stars update 🌟 +- **Bugfix** + - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) - Dependencies: - Bump `argh` to `0.1.8` - Bump `chrono` to `0.4.22` diff --git a/src/ui/activities/setup/components/ssh.rs b/src/ui/activities/setup/components/ssh.rs index b817d3f..12aa4d9 100644 --- a/src/ui/activities/setup/components/ssh.rs +++ b/src/ui/activities/setup/components/ssh.rs @@ -143,7 +143,8 @@ impl Component for SshKeys { _ => Some(Msg::None), }, Event::Keyboard(KeyEvent { - code: Key::Delete, .. + code: Key::Delete | Key::Char('e'), + .. }) => Some(Msg::Ssh(SshMsg::ShowDelSshKeyPopup)), Event::Keyboard(KeyEvent { code: Key::Char('n'), From 6a5c248d352c3a99251e5f185529a2cf33df363c Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 30 Aug 2022 15:29:34 +0200 Subject: [PATCH 06/15] Yes/No dialogs are now answerable by pressing `Y` or `N` on your keyboard --- CHANGELOG.md | 1 + .../activities/auth/components/bookmarks.rs | 18 ++++++- src/ui/activities/auth/components/popup.rs | 18 ++++++- .../filetransfer/components/popups.rs | 50 +++++++++++++++++++ src/ui/activities/setup/components/commons.rs | 10 +++- src/ui/activities/setup/components/ssh.rs | 8 +++ src/ui/activities/setup/view/ssh_keys.rs | 3 +- 7 files changed, 103 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d255f80..9c79638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ Released on ?? > ⭐ 500 stars update 🌟 +- **Yes/No dialogs** are now answerable by pressing `Y` or `N` on your keyboard ([Issue 121](https://github.com/veeso/termscp/issues/121)) - **Bugfix** - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) - Dependencies: diff --git a/src/ui/activities/auth/components/bookmarks.rs b/src/ui/activities/auth/components/bookmarks.rs index 764cf1e..a854694 100644 --- a/src/ui/activities/auth/components/bookmarks.rs +++ b/src/ui/activities/auth/components/bookmarks.rs @@ -6,7 +6,7 @@ use super::{FormMsg, Msg, UiMsg}; use tui_realm_stdlib::{Input, List, Radio}; use tuirealm::command::{Cmd, CmdResult, Direction, Position}; -use tuirealm::event::{Key, KeyEvent}; +use tuirealm::event::{Key, KeyEvent, KeyModifiers}; use tuirealm::props::{Alignment, BorderSides, BorderType, Borders, Color, InputType, TextSpan}; use tuirealm::{Component, Event, MockComponent, NoUserEvent, State, StateValue}; @@ -223,6 +223,14 @@ impl Component for DeleteBookmarkPopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Form(FormMsg::DeleteBookmark)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseDeleteBookmark)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -283,6 +291,14 @@ impl Component for DeleteRecentPopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Form(FormMsg::DeleteRecent)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseDeleteRecent)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { diff --git a/src/ui/activities/auth/components/popup.rs b/src/ui/activities/auth/components/popup.rs index 772d16c..b5e282b 100644 --- a/src/ui/activities/auth/components/popup.rs +++ b/src/ui/activities/auth/components/popup.rs @@ -6,7 +6,7 @@ use super::{FormMsg, Msg, UiMsg}; use tui_realm_stdlib::{List, Paragraph, Radio, Textarea}; use tuirealm::command::{Cmd, CmdResult, Direction, Position}; -use tuirealm::event::{Key, KeyEvent}; +use tuirealm::event::{Key, KeyEvent, KeyModifiers}; use tuirealm::props::{Alignment, BorderType, Borders, Color, TableBuilder, TextSpan}; use tuirealm::{Component, Event, MockComponent, NoUserEvent, State, StateValue}; @@ -186,6 +186,14 @@ impl Component for QuitPopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Form(FormMsg::Quit)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseQuitPopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -245,6 +253,14 @@ impl Component for InstallUpdatePopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Form(FormMsg::InstallUpdate)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseInstallUpdatePopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { diff --git a/src/ui/activities/filetransfer/components/popups.rs b/src/ui/activities/filetransfer/components/popups.rs index bd1817c..6d92799 100644 --- a/src/ui/activities/filetransfer/components/popups.rs +++ b/src/ui/activities/filetransfer/components/popups.rs @@ -147,6 +147,14 @@ impl Component for DeletePopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::CloseDeletePopup)) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Transfer(TransferMsg::DeleteFile)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseDeletePopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -203,6 +211,14 @@ impl Component for DisconnectPopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::CloseDisconnectPopup)) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::Disconnect)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseDisconnectPopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -1195,6 +1211,14 @@ impl Component for QuitPopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::CloseQuitPopup)) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::Quit)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseQuitPopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -1344,6 +1368,14 @@ impl Component for ReplacePopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::PendingAction(PendingActionMsg::CloseReplacePopups)) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::PendingAction(PendingActionMsg::TransferPendingFile)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::PendingAction(PendingActionMsg::CloseReplacePopups)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -1790,6 +1822,16 @@ impl Component for SyncBrowsingMkdirPopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => Some(Msg::PendingAction( PendingActionMsg::CloseSyncBrowsingMkdirPopup, )), + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::PendingAction(PendingActionMsg::MakePendingDirectory)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::PendingAction( + PendingActionMsg::CloseSyncBrowsingMkdirPopup, + )), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { @@ -1967,6 +2009,14 @@ impl Component for WatcherPopup { Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::CloseWatcherPopup)) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Transfer(TransferMsg::ToggleWatch)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::CloseWatcherPopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { diff --git a/src/ui/activities/setup/components/commons.rs b/src/ui/activities/setup/components/commons.rs index d1500ae..5f9ac7d 100644 --- a/src/ui/activities/setup/components/commons.rs +++ b/src/ui/activities/setup/components/commons.rs @@ -6,7 +6,7 @@ use super::{CommonMsg, Msg, ViewLayout}; use tui_realm_stdlib::{List, Paragraph, Radio, Span}; use tuirealm::command::{Cmd, CmdResult, Direction, Position}; -use tuirealm::event::{Key, KeyEvent}; +use tuirealm::event::{Key, KeyEvent, KeyModifiers}; use tuirealm::props::{Alignment, BorderSides, BorderType, Borders, Color, TableBuilder, TextSpan}; use tuirealm::{Component, Event, MockComponent, NoUserEvent, State, StateValue}; @@ -296,6 +296,14 @@ impl Component for SavePopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Common(CommonMsg::SaveConfig)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Common(CommonMsg::CloseSavePopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { diff --git a/src/ui/activities/setup/components/ssh.rs b/src/ui/activities/setup/components/ssh.rs index 12aa4d9..2acf0a8 100644 --- a/src/ui/activities/setup/components/ssh.rs +++ b/src/ui/activities/setup/components/ssh.rs @@ -58,6 +58,14 @@ impl Component for DelSshKeyPopup { self.perform(Cmd::Move(Direction::Right)); Some(Msg::None) } + Event::Keyboard(KeyEvent { + code: Key::Char('y'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ssh(SshMsg::DeleteSshKey)), + Event::Keyboard(KeyEvent { + code: Key::Char('n'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ssh(SshMsg::CloseDelSshKeyPopup)), Event::Keyboard(KeyEvent { code: Key::Enter, .. }) => { diff --git a/src/ui/activities/setup/view/ssh_keys.rs b/src/ui/activities/setup/view/ssh_keys.rs index 6d64648..647c848 100644 --- a/src/ui/activities/setup/view/ssh_keys.rs +++ b/src/ui/activities/setup/view/ssh_keys.rs @@ -20,8 +20,6 @@ impl SetupActivity { self.new_app(ViewLayout::SshKeys); // Load keys self.reload_ssh_keys(); - // Give focus - assert!(self.app.active(&Id::Ssh(IdSsh::SshKeys)).is_ok()); } pub(crate) fn view_ssh_keys(&mut self) { @@ -137,5 +135,6 @@ impl SetupActivity { vec![] ) .is_ok()); + assert!(self.app.active(&Id::Ssh(IdSsh::SshKeys)).is_ok()); } } From 2f1b644a40920de9a032afe2cf45a157141f6310 Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 30 Aug 2022 15:45:26 +0200 Subject: [PATCH 07/15] backtab will now change the explorer tab; use P to change to log --- CHANGELOG.md | 2 ++ README.md | 2 ++ docs/de/man.md | 1 + docs/es/man.md | 1 + docs/fr/man.md | 1 + docs/it/man.md | 1 + docs/man.md | 1 + docs/zh-CN/man.md | 1 + .../activities/filetransfer/components/log.rs | 3 ++- .../filetransfer/components/transfer/mod.rs | 23 +++++++++---------- src/ui/activities/filetransfer/mod.rs | 2 +- src/ui/activities/filetransfer/update.rs | 2 +- 12 files changed, 25 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c79638..637ad22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ Released on ?? > ⭐ 500 stars update 🌟 +- **Changed keybindings for BACKTAB**: backtab will now change the explorer tab + - To active the LOG PANEL, use `P` - **Yes/No dialogs** are now answerable by pressing `Y` or `N` on your keyboard ([Issue 121](https://github.com/veeso/termscp/issues/121)) - **Bugfix** - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) diff --git a/README.md b/README.md index c2ccc21..a2a36d4 100644 --- a/README.md +++ b/README.md @@ -212,7 +212,9 @@ You can make a donation with one of these platforms: [![ko-fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/veeso) [![PayPal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://www.paypal.me/chrisintin) [![bitcoin](https://img.shields.io/badge/Bitcoin-ff9416?style=for-the-badge&logo=bitcoin&logoColor=white)](https://btc.com/bc1qvlmykjn7htz0vuprmjrlkwtv9m9pan6kylsr8w) +[![litecoin](https://img.shields.io/badge/Litecoin-345d9d?style=for-the-badge&logo=Litecoin&logoColor=white)](https://blockchair.com/litecoin/address/ltc1q89a7f859gt7nuekvnuuc25wapkq2f8ny78mp8l) [![ethereum](https://img.shields.io/badge/Ethereum-3C3C3D?style=for-the-badge&logo=Ethereum&logoColor=white)](https://etherscan.io/address/0xE57E761Aa806c9afe7e06Fb0601B17beC310f9c4) +[![tether](https://img.shields.io/badge/tether-168363?style=for-the-badge&logo=tether&logoColor=white)](https://etherscan.io/address/0xE57E761Aa806c9afe7e06Fb0601B17beC310f9c4) --- diff --git a/docs/de/man.md b/docs/de/man.md index e9c885d..d0075cc 100644 --- a/docs/de/man.md +++ b/docs/de/man.md @@ -204,6 +204,7 @@ In order to change panel you need to type `` to move the remote explorer p | `` | Select a file | Mark | | `` | Create new file with provided name | New | | `` | Edit file; see Text editor | Open | +| `

` | Open log panel | Panel | | `` | Quit termscp | Quit | | `` | Rename file | Rename | | `` | Save file as... | Save | diff --git a/docs/es/man.md b/docs/es/man.md index 80397dd..ba7149b 100644 --- a/docs/es/man.md +++ b/docs/es/man.md @@ -204,6 +204,7 @@ Para cambiar de panel, debe escribir `` para mover el panel del explorador | `` | Seleccione un archivo | Mark | | `` | Crear un nuevo archivo con el nombre proporcionado | New | | `` | Editar archivo | Open | +| `

` | Open log panel | Panel | | `` | Salir de termscp | Quit | | `` | Renombrar archivo | Rename | | `` | Guardar archivo como... | Save | diff --git a/docs/fr/man.md b/docs/fr/man.md index 1b47b55..2017500 100644 --- a/docs/fr/man.md +++ b/docs/fr/man.md @@ -202,6 +202,7 @@ Pour changer de panneau, vous devez taper `` pour déplacer le panneau de | `` | Sélectionner un fichier | Mark | | `` | Créer un nouveau fichier avec le nom fourni | New | | `` | Modifier le fichier | Open | +| `

` | Ouvre le panel de journals | Panel | | `` | Quitter termscp | Quit | | `` | Renommer le fichier | Rename | | `` | Enregistrer le fichier sous... | Save | diff --git a/docs/it/man.md b/docs/it/man.md index 40d307f..00a8024 100644 --- a/docs/it/man.md +++ b/docs/it/man.md @@ -198,6 +198,7 @@ Per cambiare pannello ti puoi muovere con le frecce, `` per andare sul pan | `` | Seleziona file | Mark | | `` | Crea nuovo file con il nome fornito | New | | `` | Modifica file; Vedi text editor | Open | +| `

` | Apri pannello log | Panel | | `` | Termina termscp | Quit | | `` | Rinomina file | Rename | | `` | Salva file con nome | Save | diff --git a/docs/man.md b/docs/man.md index 1712b14..84f2b16 100644 --- a/docs/man.md +++ b/docs/man.md @@ -202,6 +202,7 @@ In order to change panel you need to type `` to move the remote explorer p | `` | Select a file | Mark | | `` | Create new file with provided name | New | | `` | Edit file; see Text editor | Open | +| `

` | Open log panel | Panel | | `` | Quit termscp | Quit | | `` | Rename file | Rename | | `` | Save file as... | Save | diff --git a/docs/zh-CN/man.md b/docs/zh-CN/man.md index 04dcfc4..9720c0d 100644 --- a/docs/zh-CN/man.md +++ b/docs/zh-CN/man.md @@ -199,6 +199,7 @@ termscp中的文件资源管理器是指你与远程建立连接后可以看到 | `` | 选中文件 | Mark | | `` | 使用键入的名称新建文件 | New | | `` | 编辑文件;参考文本编辑器文档 | Open | +| `

` | 打开日志面板 | Panel | | `` | 退出termscp | Quit | | `` | 重命名文件 | Rename | | `` | 另存为... | Save | diff --git a/src/ui/activities/filetransfer/components/log.rs b/src/ui/activities/filetransfer/components/log.rs index f21d5a2..4bf1b33 100644 --- a/src/ui/activities/filetransfer/components/log.rs +++ b/src/ui/activities/filetransfer/components/log.rs @@ -192,7 +192,8 @@ impl Component for Log { } // -- comp msg Event::Keyboard(KeyEvent { - code: Key::BackTab, .. + code: Key::BackTab | Key::Tab | Key::Char('p'), + .. }) => Some(Msg::Ui(UiMsg::LogBackTabbed)), _ => None, } diff --git a/src/ui/activities/filetransfer/components/transfer/mod.rs b/src/ui/activities/filetransfer/components/transfer/mod.rs index 3db96ec..3231084 100644 --- a/src/ui/activities/filetransfer/components/transfer/mod.rs +++ b/src/ui/activities/filetransfer/components/transfer/mod.rs @@ -82,14 +82,11 @@ impl Component for ExplorerFind { Some(Msg::None) } // -- comp msg - Event::Keyboard(KeyEvent { - code: Key::BackTab, .. - }) => Some(Msg::Ui(UiMsg::ExplorerBackTabbed)), Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::CloseFindExplorer)) } Event::Keyboard(KeyEvent { - code: Key::Left | Key::Right | Key::Tab, + code: Key::Left | Key::Right | Key::Tab | Key::BackTab, .. }) => Some(Msg::Ui(UiMsg::ChangeTransferWindow)), Event::Keyboard(KeyEvent { @@ -206,14 +203,11 @@ impl Component for ExplorerLocal { Some(Msg::None) } // -- comp msg - Event::Keyboard(KeyEvent { - code: Key::BackTab, .. - }) => Some(Msg::Ui(UiMsg::ExplorerBackTabbed)), Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::ShowDisconnectPopup)) } Event::Keyboard(KeyEvent { - code: Key::Right | Key::Tab, + code: Key::Right | Key::Tab | Key::BackTab, .. }) => Some(Msg::Ui(UiMsg::ChangeTransferWindow)), Event::Keyboard(KeyEvent { @@ -275,6 +269,10 @@ impl Component for ExplorerLocal { code: Key::Char('o') | Key::Function(4), modifiers: KeyModifiers::NONE, }) => Some(Msg::Transfer(TransferMsg::OpenTextFile)), + Event::Keyboard(KeyEvent { + code: Key::Char('p'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::ShowLogPanel)), Event::Keyboard(KeyEvent { code: Key::Char('r') | Key::Function(6), modifiers: KeyModifiers::NONE, @@ -386,14 +384,11 @@ impl Component for ExplorerRemote { Some(Msg::None) } // -- comp msg - Event::Keyboard(KeyEvent { - code: Key::BackTab, .. - }) => Some(Msg::Ui(UiMsg::ExplorerBackTabbed)), Event::Keyboard(KeyEvent { code: Key::Esc, .. }) => { Some(Msg::Ui(UiMsg::ShowDisconnectPopup)) } Event::Keyboard(KeyEvent { - code: Key::Left | Key::Tab, + code: Key::Left | Key::Tab | Key::BackTab, .. }) => Some(Msg::Ui(UiMsg::ChangeTransferWindow)), Event::Keyboard(KeyEvent { @@ -455,6 +450,10 @@ impl Component for ExplorerRemote { code: Key::Char('o') | Key::Function(4), modifiers: KeyModifiers::NONE, }) => Some(Msg::Transfer(TransferMsg::OpenTextFile)), + Event::Keyboard(KeyEvent { + code: Key::Char('p'), + modifiers: KeyModifiers::NONE, + }) => Some(Msg::Ui(UiMsg::ShowLogPanel)), Event::Keyboard(KeyEvent { code: Key::Char('r') | Key::Function(6), modifiers: KeyModifiers::NONE, diff --git a/src/ui/activities/filetransfer/mod.rs b/src/ui/activities/filetransfer/mod.rs index 3bc338d..460e24c 100644 --- a/src/ui/activities/filetransfer/mod.rs +++ b/src/ui/activities/filetransfer/mod.rs @@ -140,7 +140,6 @@ enum UiMsg { CloseWatchedPathsList, CloseWatcherPopup, Disconnect, - ExplorerBackTabbed, LogBackTabbed, Quit, ReplacePopupTabbed, @@ -153,6 +152,7 @@ enum UiMsg { ShowFindPopup, ShowGotoPopup, ShowKeybindingsPopup, + ShowLogPanel, ShowMkdirPopup, ShowNewFilePopup, ShowOpenWithPopup, diff --git a/src/ui/activities/filetransfer/update.rs b/src/ui/activities/filetransfer/update.rs index 04dff97..3111dce 100644 --- a/src/ui/activities/filetransfer/update.rs +++ b/src/ui/activities/filetransfer/update.rs @@ -406,7 +406,7 @@ impl FileTransferActivity { self.disconnect(); self.umount_disconnect(); } - UiMsg::ExplorerBackTabbed => { + UiMsg::ShowLogPanel => { assert!(self.app.active(&Id::Log).is_ok()); } UiMsg::LogBackTabbed => { From 833cd7d3ba40e73ba3466f06f855fcc4b32b12c9 Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 30 Aug 2022 15:54:37 +0200 Subject: [PATCH 08/15] Fixed version comparison when going above 0.9 --- CHANGELOG.md | 2 ++ Cargo.lock | 7 +++++++ Cargo.toml | 1 + src/system/auto_update.rs | 17 ++++++++++++++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 637ad22..864d73e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ Released on ?? - **Yes/No dialogs** are now answerable by pressing `Y` or `N` on your keyboard ([Issue 121](https://github.com/veeso/termscp/issues/121)) - **Bugfix** - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) + - Fixed version comparison when going above 0.9 - Dependencies: - Bump `argh` to `0.1.8` - Bump `chrono` to `0.4.22` @@ -45,6 +46,7 @@ Released on ?? - Changed `regex` to `lazy-regex 2.3.0` - Bump `tuirealm` to `1.8.0` - Bump `tui-realm-stdlib` to `1.1.7` + - Added `version-compare 0.1.0` - Bump `wildmatch` to `2.1.1` ## 0.9.0 diff --git a/Cargo.lock b/Cargo.lock index 7569980..2fe8286 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2518,6 +2518,7 @@ dependencies = [ "tuirealm", "unicode-width", "users", + "version-compare", "whoami", "wildmatch", ] @@ -2827,6 +2828,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + [[package]] name = "version_check" version = "0.9.4" diff --git a/Cargo.toml b/Cargo.toml index ca1f581..919db11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,6 +62,7 @@ toml = "0.5.0" tui-realm-stdlib = "1.1.7" tuirealm = "1.8.0" unicode-width = "0.1.8" +version-compare = "0.1.0" whoami = "1.2.1" wildmatch = "2.1.1" diff --git a/src/system/auto_update.rs b/src/system/auto_update.rs index 172ef41..12eab46 100644 --- a/src/system/auto_update.rs +++ b/src/system/auto_update.rs @@ -96,7 +96,7 @@ impl Update { new_version, cargo_crate_version!() ); - if new_version.as_str() > cargo_crate_version!() { + if Self::is_new_version_higher(new_version.as_str(), cargo_crate_version!()) { Some(r) // New version is available } else { None // No new version @@ -105,6 +105,12 @@ impl Update { None => None, } } + + /// Check wether new version is higher than new version + fn is_new_version_higher(new_version: &str, current_version: &str) -> bool { + version_compare::compare(new_version, current_version).unwrap_or(version_compare::Cmp::Lt) + == version_compare::Cmp::Gt + } } impl From for UpdateStatus { fn from(s: Status) -> Self { @@ -193,4 +199,13 @@ mod test { assert_eq!(release.body.as_str(), "fixed everything"); assert_eq!(release.version.as_str(), "0.7.0"); } + + #[test] + fn should_tell_that_version_is_higher() { + assert!(Update::is_new_version_higher("0.10.0", "0.9.0")); + assert!(Update::is_new_version_higher("0.20.0", "0.19.0")); + assert!(!Update::is_new_version_higher("0.9.0", "0.10.0")); + assert!(!Update::is_new_version_higher("0.9.9", "0.10.1")); + assert!(!Update::is_new_version_higher("0.10.9", "0.11.0")); + } } From 64e3848c97d48946f7068ecf7c4e6c6fd82f6abf Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 30 Aug 2022 17:47:55 +0200 Subject: [PATCH 09/15] Use ssh2 config IdentityFile as fallback for key based authentication --- CHANGELOG.md | 3 ++ Cargo.lock | 17 +++++-- Cargo.toml | 3 +- src/system/sshkey_storage.rs | 95 +++++++++++++++++++++++++++++++++--- src/utils/test_helpers.rs | 13 ++--- 5 files changed, 112 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 864d73e..af96b44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ Released on ?? - **Changed keybindings for BACKTAB**: backtab will now change the explorer tab - To active the LOG PANEL, use `P` - **Yes/No dialogs** are now answerable by pressing `Y` or `N` on your keyboard ([Issue 121](https://github.com/veeso/termscp/issues/121)) +- **Use ssh2 config IdentityFile** as fallback for key based authentication - **Bugfix** - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) - Fixed version comparison when going above 0.9 @@ -44,6 +45,8 @@ Released on ?? - Bump `keyring` to `1.2.0` - Bump `open` to `3.0.2` - Changed `regex` to `lazy-regex 2.3.0` + - Bump `remotefs-ssh` to `0.1.2` + - Bump `ssh2-config` to `0.1.3` - Bump `tuirealm` to `1.8.0` - Bump `tui-realm-stdlib` to `1.1.7` - Added `version-compare 0.1.0` diff --git a/Cargo.lock b/Cargo.lock index 2fe8286..effa48e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1719,6 +1719,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498a099351efa4becc6a19c72aa9270598e8fd274ca47052e37455241c88b696" +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + [[package]] name = "pathdiff" version = "0.2.1" @@ -1938,7 +1944,7 @@ checksum = "9939849e0b3895b07f258458d0fa5cd4632c78ffc517e66e1f758ddf23990542" dependencies = [ "chrono", "log", - "path-slash", + "path-slash 0.1.5", "remotefs", "rust-s3", "thiserror", @@ -1952,7 +1958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "359fd989a6ad50fa6defae771e453695412cbfdb5476f49e42d1bb1d51b5c096" dependencies = [ "log", - "path-slash", + "path-slash 0.1.5", "remotefs", "suppaftp", "users", @@ -1960,14 +1966,14 @@ dependencies = [ [[package]] name = "remotefs-ssh" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2ac5a7f475c1b63ffd2aaab57ca4e37e6a6ed23461046d4fb1554835e6088a" +checksum = "190106b53b839cf094172d2f1bc14e8d2846a69de06b239f11c2fc353080e9e0" dependencies = [ "chrono", "lazy_static", "log", - "path-slash", + "path-slash 0.2.1", "regex", "remotefs", "ssh2", @@ -2511,6 +2517,7 @@ dependencies = [ "serde", "serial_test", "simplelog", + "ssh2-config", "tempfile", "thiserror", "toml", diff --git a/Cargo.toml b/Cargo.toml index 919db11..fc3bb87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,11 +51,12 @@ rand = "0.8.5" remotefs = "^0.2.0" remotefs-aws-s3 = "^0.2.0" remotefs-ftp = { version = "^0.1.0", features = [ "secure" ] } -remotefs-ssh = { version = "^0.1.1", features = [ "ssh2-vendored" ] } +remotefs-ssh = { version = "^0.1.2", features = [ "ssh2-vendored" ] } rpassword = "6.0.1" self_update = { version = "0.30.0", features = [ "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } serde = { version = "^1.0.0", features = [ "derive" ] } simplelog = "0.12.0" +ssh2-config = "^0.1.3" tempfile = "3.2.0" thiserror = "^1.0.0" toml = "0.5.0" diff --git a/src/system/sshkey_storage.rs b/src/system/sshkey_storage.rs index 1b3cace..b607b8a 100644 --- a/src/system/sshkey_storage.rs +++ b/src/system/sshkey_storage.rs @@ -5,12 +5,16 @@ // Locals use super::config_client::ConfigClient; // Ext -use remotefs_ssh::SshKeyStorage as SshKeyStorageT; +use remotefs_ssh::SshKeyStorage as SshKeyStorageTrait; +use ssh2_config::SshConfig; use std::collections::HashMap; use std::path::{Path, PathBuf}; pub struct SshKeyStorage { - hosts: HashMap, // Association between {user}@{host} and RSA key path + /// Association between {user}@{host} and RSA key path + hosts: HashMap, + /// Ssh2 configuration + ssh_config: Option, } impl SshKeyStorage { @@ -19,6 +23,7 @@ impl SshKeyStorage { pub fn empty() -> Self { SshKeyStorage { hosts: HashMap::new(), + ssh_config: None, } } @@ -34,21 +39,67 @@ impl SshKeyStorage { let key: String = Self::make_mapkey(host, username); self.hosts.insert(key, p); } -} -impl SshKeyStorageT for SshKeyStorage { - fn resolve(&self, host: &str, username: &str) -> Option<&Path> { + /// Parse ssh2 config + fn parse_ssh2_config(path: &str) -> Result { + use std::fs::File; + use std::io::BufReader; + + let mut reader = File::open(path) + .map_err(|e| format!("failed to open {}: {}", path, e)) + .map(BufReader::new)?; + SshConfig::default() + .parse(&mut reader) + .map_err(|e| format!("Failed to parse ssh2 config: {}", e)) + } + + /// Resolve host via termscp ssh keys storage + fn resolve_host_in_termscp_storage(&self, host: &str, username: &str) -> Option<&Path> { let key: String = Self::make_mapkey(host, username); self.hosts.get(&key).map(|x| x.as_path()) } + + /// Resolve host via ssh2 configuration + fn resolve_host_in_ssh2_configuration(&self, host: &str) -> Option { + if let Some(config) = self.ssh_config.as_ref() { + let params = config.query(host); + params + .identity_file + .as_ref() + .and_then(|x| x.get(0).cloned()) + } else { + debug!("ssh2 config is not available; no key has been found"); + None + } + } +} + +impl SshKeyStorageTrait for SshKeyStorage { + fn resolve(&self, host: &str, username: &str) -> Option { + // search in termscp keys + if let Some(path) = self.resolve_host_in_termscp_storage(host, username) { + return Some(path.to_path_buf()); + } + debug!( + "couldn't find any ssh key associated to {} at {}. Trying with ssh2 config", + username, host + ); + // otherwise search in configuration + self.resolve_host_in_ssh2_configuration(host) + } } impl From<&ConfigClient> for SshKeyStorage { fn from(cfg_client: &ConfigClient) -> Self { + // read ssh2 config + let ssh_config = cfg_client.get_ssh_config().and_then(|x| { + debug!("reading ssh config at {}", x); + Self::parse_ssh2_config(x).ok() + }); let mut hosts: HashMap = HashMap::with_capacity(cfg_client.iter_ssh_keys().count()); debug!("Setting up SSH key storage"); - // Iterate over keys + // Iterate over keys in storage for key in cfg_client.iter_ssh_keys() { match cfg_client.get_ssh_key(key) { Ok(host) => match host { @@ -66,7 +117,7 @@ impl From<&ConfigClient> for SshKeyStorage { info!("Got SSH key for {}", key); } // Return storage - SshKeyStorage { hosts } + SshKeyStorage { hosts, ssh_config } } } @@ -75,6 +126,7 @@ mod tests { use super::*; use crate::system::config_client::ConfigClient; + use crate::utils::test_helpers; use pretty_assertions::assert_eq; use std::path::Path; @@ -103,6 +155,35 @@ mod tests { assert!(storage.resolve("deskichup", "veeso").is_none()); } + #[test] + fn sould_resolve_key_from_ssh2_config() { + let rsa_key = test_helpers::create_sample_file_with_content("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDErJhQxEI0+VvhlXVUyh+vMCm7aXfCA/g633AG8ezD/5EylwchtAr2JCoBWnxn4zV8nI9dMqOgm0jO4IsXpKOjQojv+0VOH7I+cDlBg0tk4hFlvyyS6YviDAfDDln3jYUM+5QNDfQLaZlH2WvcJ3mkDxLVlI9MBX1BAeSmChLxwAvxALp2ncImNQLzDO9eHcig3dtMrEKkzXQowRW5Y7eUzg2+vvVq4H2DOjWwUndvB5sJkhEfTUVE7ID8ZdGJo60kUb/02dZYj+IbkAnMCsqktk0cg/4XFX82hEfRYFeb1arkysFisPU1DOb6QielL/axeTebVplaouYcXY0pFdJt root@8c50fd4c345a"); + let ssh_config_file = test_helpers::create_sample_file_with_content(format!( + r#" +Host test + HostName 127.0.0.1 + Port 2222 + User test + IdentityFile {} + StrictHostKeyChecking no + UserKnownHostsFile /dev/null +"#, + rsa_key.path().display() + )); + // make storage + let tmp_dir: tempfile::TempDir = tempfile::TempDir::new().ok().unwrap(); + let (cfg_path, key_path): (PathBuf, PathBuf) = get_paths(tmp_dir.path()); + let mut client: ConfigClient = ConfigClient::new(cfg_path.as_path(), key_path.as_path()) + .ok() + .unwrap(); + client.set_ssh_config(Some(ssh_config_file.path().to_string_lossy().to_string())); + let storage: SshKeyStorage = SshKeyStorage::from(&client); + assert_eq!( + storage.resolve("test", "pi").unwrap().as_path(), + rsa_key.path() + ); + } + #[test] fn test_system_sshkey_storage_empty() { let storage: SshKeyStorage = SshKeyStorage::empty(); diff --git a/src/utils/test_helpers.rs b/src/utils/test_helpers.rs index fe21f02..2aa39c8 100644 --- a/src/utils/test_helpers.rs +++ b/src/utils/test_helpers.rs @@ -21,14 +21,15 @@ pub fn create_sample_file_entry() -> (File, NamedTempFile) { ) } +/// Create sample file with default lorem ipsum content pub fn create_sample_file() -> NamedTempFile { - // Write + create_sample_file_with_content("Lorem ipsum dolor sit amet, consectetur adipiscing elit.Mauris ultricies consequat eros,nec scelerisque magna imperdiet metus.") +} + +/// Create sample file with provided content +pub fn create_sample_file_with_content(content: impl std::fmt::Display) -> NamedTempFile { let mut tmpfile: tempfile::NamedTempFile = tempfile::NamedTempFile::new().unwrap(); - writeln!( - tmpfile, - "Lorem ipsum dolor sit amet, consectetur adipiscing elit.Mauris ultricies consequat eros,nec scelerisque magna imperdiet metus." - ) - .unwrap(); + writeln!(tmpfile, "{}", content).unwrap(); tmpfile } From fdd7901f7e93f94ea0a86a774e5111de36f75c69 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 10 Oct 2022 16:21:32 +0200 Subject: [PATCH 10/15] removed libssl dependency --- .github/workflows/linux.yml | 2 +- CHANGELOG.md | 2 + Cargo.lock | 123 ++++++++++++++++++++++++++++++------ Cargo.toml | 6 +- install.sh | 2 +- 5 files changed, 109 insertions(+), 26 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 071c0f8..93b88a7 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Install dependencies - run: sudo apt update && sudo apt install -y libdbus-1-dev libssh2-1-dev libssl-dev + run: sudo apt update && sudo apt install -y libdbus-1-dev - uses: actions-rs/toolchain@v1 with: toolchain: stable diff --git a/CHANGELOG.md b/CHANGELOG.md index af96b44..b3f7f5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,12 +45,14 @@ Released on ?? - Bump `keyring` to `1.2.0` - Bump `open` to `3.0.2` - Changed `regex` to `lazy-regex 2.3.0` + - Bump `remotefs-ftp` to `0.1.2` - Bump `remotefs-ssh` to `0.1.2` - Bump `ssh2-config` to `0.1.3` - Bump `tuirealm` to `1.8.0` - Bump `tui-realm-stdlib` to `1.1.7` - Added `version-compare 0.1.0` - Bump `wildmatch` to `2.1.1` + - Removed libssl dependency ## 0.9.0 diff --git a/Cargo.lock b/Cargo.lock index effa48e..a2832f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -126,11 +126,12 @@ checksum = "e69e13a99a7e6e070bb114f7ff381e58c7ccc188630121fc4c2fe4bcf24cd072" dependencies = [ "http", "log", - "native-tls", - "openssl", + "rustls", "serde", "serde_json", "url", + "webpki", + "webpki-roots", "wildmatch", ] @@ -954,16 +955,16 @@ dependencies = [ ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-rustls" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ - "bytes", + "http", "hyper", - "native-tls", + "rustls", "tokio", - "tokio-native-tls", + "tokio-rustls", ] [[package]] @@ -1938,9 +1939,9 @@ dependencies = [ [[package]] name = "remotefs-aws-s3" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9939849e0b3895b07f258458d0fa5cd4632c78ffc517e66e1f758ddf23990542" +checksum = "896bc1b45d85d017e632b79faf8f78eccf5ca6f372baf541977b9274a1446b05" dependencies = [ "chrono", "log", @@ -1953,9 +1954,9 @@ dependencies = [ [[package]] name = "remotefs-ftp" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359fd989a6ad50fa6defae771e453695412cbfdb5476f49e42d1bb1d51b5c096" +checksum = "5af56f530781b5749b45acfc1e3ed196d4db05c17e1a7a2eae5a2fccd862079a" dependencies = [ "log", "path-slash 0.1.5", @@ -2005,28 +2006,45 @@ dependencies = [ "http", "http-body", "hyper", - "hyper-tls", + "hyper-rustls", "ipnet", "js-sys", "lazy_static", "log", "mime", - "native-tls", "percent-encoding", "pin-project-lite", + "rustls", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", - "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots", "winreg", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + [[package]] name = "rpassword" version = "6.0.1" @@ -2078,6 +2096,27 @@ dependencies = [ "url", ] +[[package]] +name = "rustls" +version = "0.20.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +dependencies = [ + "base64", +] + [[package]] name = "ryu" version = "1.0.11" @@ -2115,6 +2154,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "secret-service" version = "2.0.2" @@ -2362,6 +2411,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "ssh2" version = "0.9.3" @@ -2420,9 +2475,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "suppaftp" -version = "4.4.0" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374fa36af4a114155280ba725b6487d78ec4ed8e54c69fe80f59805ffed9cd65" +checksum = "e847b04a392385badf1f7a766dcb4f9c7ce5f180360e5820d0b78cda026a9802" dependencies = [ "chrono", "lazy-regex", @@ -2635,13 +2690,14 @@ dependencies = [ ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tokio-rustls" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "native-tls", + "rustls", "tokio", + "webpki", ] [[package]] @@ -2807,6 +2863,12 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "url" version = "2.2.2" @@ -2962,6 +3024,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +dependencies = [ + "webpki", +] + [[package]] name = "wepoll-ffi" version = "0.1.2" diff --git a/Cargo.toml b/Cargo.toml index fc3bb87..dcb0353 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,11 +49,11 @@ notify-rust = { version = "4.5.6", default-features = false, features = [ "d" ] open = "3.0.2" rand = "0.8.5" remotefs = "^0.2.0" -remotefs-aws-s3 = "^0.2.0" -remotefs-ftp = { version = "^0.1.0", features = [ "secure" ] } +remotefs-aws-s3 = { version = "^0.2.1", default-features = false, features = [ "find", "rustls" ] } +remotefs-ftp = { version = "^0.1.2", features = [ "vendored", "native-tls" ] } remotefs-ssh = { version = "^0.1.2", features = [ "ssh2-vendored" ] } rpassword = "6.0.1" -self_update = { version = "0.30.0", features = [ "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } +self_update = { version = "0.30.0", default-features = false, features = [ "rustls", "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } serde = { version = "^1.0.0", features = [ "derive" ] } simplelog = "0.12.0" ssh2-config = "^0.1.3" diff --git a/install.sh b/install.sh index 24e99b1..6a68bb2 100755 --- a/install.sh +++ b/install.sh @@ -296,7 +296,7 @@ install_bsd_cargo_deps() { } install_linux_cargo_deps() { - local debian_deps="gcc pkg-config libssl-dev libssh2-1-dev libdbus-1-dev" + local debian_deps="gcc pkg-config libdbus-1-dev" local rpm_deps="gcc openssl pkgconfig libdbus-devel openssl-devel" local arch_deps="gcc openssl pkg-config dbus" local deps_cmd="" From 8b67c59247a8fe7f61444290f5eae26b96d5e0e2 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 10 Oct 2022 16:50:00 +0200 Subject: [PATCH 11/15] removed deps from docker build --- dist/build/x86_64/Dockerfile | 2 -- dist/build/x86_64_centos7/Dockerfile | 2 -- dist/build/x86_64_debian8/Dockerfile | 2 -- dist/build/x86_64_debian9/Dockerfile | 2 -- 4 files changed, 8 deletions(-) diff --git a/dist/build/x86_64/Dockerfile b/dist/build/x86_64/Dockerfile index 38b3849..3d6d341 100644 --- a/dist/build/x86_64/Dockerfile +++ b/dist/build/x86_64/Dockerfile @@ -8,8 +8,6 @@ RUN apt update && apt install -y \ git \ gcc \ pkg-config \ - libssl-dev \ - libssh2-1-dev \ libdbus-1-dev \ curl # Clone repository diff --git a/dist/build/x86_64_centos7/Dockerfile b/dist/build/x86_64_centos7/Dockerfile index b237f6f..6e762d2 100644 --- a/dist/build/x86_64_centos7/Dockerfile +++ b/dist/build/x86_64_centos7/Dockerfile @@ -7,10 +7,8 @@ WORKDIR /usr/src/ RUN yum -y install \ git \ gcc \ - openssl \ pkgconfig \ dbus-devel \ - openssl-devel \ bash # Install rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \ diff --git a/dist/build/x86_64_debian8/Dockerfile b/dist/build/x86_64_debian8/Dockerfile index e3971e2..533aa52 100644 --- a/dist/build/x86_64_debian8/Dockerfile +++ b/dist/build/x86_64_debian8/Dockerfile @@ -6,8 +6,6 @@ RUN apt update && apt install -y \ git \ gcc \ pkg-config \ - libssl-dev \ - libssh2-1-dev \ libdbus-1-dev \ curl diff --git a/dist/build/x86_64_debian9/Dockerfile b/dist/build/x86_64_debian9/Dockerfile index 3aad393..ae8187e 100644 --- a/dist/build/x86_64_debian9/Dockerfile +++ b/dist/build/x86_64_debian9/Dockerfile @@ -8,8 +8,6 @@ RUN apt update && apt install -y \ git \ gcc \ pkg-config \ - libssl-dev \ - libssh2-1-dev \ libdbus-1-dev \ bash \ curl From 0f432d0375d8905d547c5713f79ffcef0ed241e0 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 10 Oct 2022 17:26:26 +0200 Subject: [PATCH 12/15] fixed build --- dist/build/x86_64_centos7/Dockerfile | 11 +++++++---- dist/build/x86_64_debian9/Dockerfile | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dist/build/x86_64_centos7/Dockerfile b/dist/build/x86_64_centos7/Dockerfile index 6e762d2..90c4660 100644 --- a/dist/build/x86_64_centos7/Dockerfile +++ b/dist/build/x86_64_centos7/Dockerfile @@ -8,8 +8,11 @@ RUN yum -y install \ git \ gcc \ pkgconfig \ + gcc \ + make \ dbus-devel \ - bash + bash \ + rpm-build # Install rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && \ chmod +x /tmp/rust.sh && \ @@ -18,10 +21,10 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rust.sh && RUN git clone --branch $branch https://github.com/veeso/termscp.git # Set workdir to termscp WORKDIR /usr/src/termscp/ -# Install cargo arxch -RUN source $HOME/.cargo/env && cargo install cargo-rpm # Build for x86_64 RUN source $HOME/.cargo/env && cargo build --release +# Install cargo rpm +RUN source $HOME/.cargo/env && cargo install cargo-rpm # Build pkgs -RUN source $HOME/.cargo/env && yum -y install rpm-build && cargo rpm init && cargo rpm build +RUN source $HOME/.cargo/env && cargo rpm init && cargo rpm build CMD ["sh"] diff --git a/dist/build/x86_64_debian9/Dockerfile b/dist/build/x86_64_debian9/Dockerfile index ae8187e..fd4b0cf 100644 --- a/dist/build/x86_64_debian9/Dockerfile +++ b/dist/build/x86_64_debian9/Dockerfile @@ -9,6 +9,7 @@ RUN apt update && apt install -y \ gcc \ pkg-config \ libdbus-1-dev \ + build-essential \ bash \ curl From f27a4e2a027d21b71c58421d07ec50e33017cdae Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 10 Oct 2022 17:40:03 +0200 Subject: [PATCH 13/15] lint --- src/ui/activities/filetransfer/actions/edit.rs | 4 +--- src/ui/activities/filetransfer/session.rs | 12 +++--------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/ui/activities/filetransfer/actions/edit.rs b/src/ui/activities/filetransfer/actions/edit.rs index 59d5138..2902455 100644 --- a/src/ui/activities/filetransfer/actions/edit.rs +++ b/src/ui/activities/filetransfer/actions/edit.rs @@ -148,9 +148,7 @@ impl FileTransferActivity { } }; // Edit file - if let Err(err) = self.edit_local_file(tmpfile.as_path()) { - return Err(err); - } + self.edit_local_file(tmpfile.as_path())?; // Get local fs entry let tmpfile_entry: File = match self.host.stat(tmpfile.as_path()) { Ok(e) => e, diff --git a/src/ui/activities/filetransfer/session.rs b/src/ui/activities/filetransfer/session.rs index 23bb38a..4237fa4 100644 --- a/src/ui/activities/filetransfer/session.rs +++ b/src/ui/activities/filetransfer/session.rs @@ -326,11 +326,7 @@ impl FileTransferActivity { break; } // Send entry; name is always None after first call - if let Err(err) = - self.filetransfer_send_recurse(entry, remote_path.as_path(), None) - { - return Err(err); - } + self.filetransfer_send_recurse(entry, remote_path.as_path(), None)? } Ok(()) } @@ -717,13 +713,11 @@ impl FileTransferActivity { } // Receive entry; name is always None after first call // Local path becomes local_dir_path - if let Err(err) = self.filetransfer_recv_recurse( + self.filetransfer_recv_recurse( entry, local_dir_path.as_path(), None, - ) { - return Err(err); - } + )? } Ok(()) } From cd5bb28fb772ea7b1008903331c48f0d3310f887 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 10 Oct 2022 18:04:44 +0200 Subject: [PATCH 14/15] updated deps --- CHANGELOG.md | 12 +- Cargo.lock | 553 ++++++++++++++++++++++++++++++--------------------- Cargo.toml | 22 +- README.md | 5 +- 4 files changed, 351 insertions(+), 241 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3f7f5d..3256450 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,8 @@ Released on ?? -> ⭐ 500 stars update 🌟 +> ⭐ 500 stars update ⭐ +> Thank you for supporting termscp and make it reaching 500 stars on Github - **Changed keybindings for BACKTAB**: backtab will now change the explorer tab - To active the LOG PANEL, use `P` @@ -40,17 +41,22 @@ Released on ?? - Fixed [Issue 122](https://github.com/veeso/termscp/issues/122) - Fixed version comparison when going above 0.9 - Dependencies: - - Bump `argh` to `0.1.8` + - Bump `argh` to `0.1.9` - Bump `chrono` to `0.4.22` - Bump `keyring` to `1.2.0` - - Bump `open` to `3.0.2` + - Bump `notify-rust` to `4.5.10` + - Bump `open` to `3.0.3` + - Bump `rpassword` to `7.0.0` - Changed `regex` to `lazy-regex 2.3.0` - Bump `remotefs-ftp` to `0.1.2` - Bump `remotefs-ssh` to `0.1.2` + - Bump `self_update` to `0.32` - Bump `ssh2-config` to `0.1.3` - Bump `tuirealm` to `1.8.0` - Bump `tui-realm-stdlib` to `1.1.7` + - Bump `unicode-width` to `0.1.10` - Added `version-compare 0.1.0` + - Bump `whoami` to `1.2.3` - Bump `wildmatch` to `2.1.1` - Removed libssl dependency diff --git a/Cargo.lock b/Cargo.lock index a2832f9..1e5c0f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,43 +27,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" [[package]] -name = "aho-corasick" -version = "0.7.18" +name = "ahash" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] [[package]] name = "android_system_properties" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "anyhow" -version = "1.0.62" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "argh" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e7e4aa7e40747e023c0761dafcb42333a9517575bbf1241747f68dd3177a62" +checksum = "c375edecfd2074d5edcc31396860b6e54b6f928714d0e097b983053fac0cabe3" dependencies = [ "argh_derive", "argh_shared", @@ -71,12 +73,12 @@ dependencies = [ [[package]] name = "argh_derive" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f2bd7ff6ed6414f4e5521bd509bae46454bbd513801767ced3f21a751ab4bc" +checksum = "aa013479b80109a1bf01a039412b0f0013d716f36921226d86c6709032fb7a03" dependencies = [ "argh_shared", - "heck", + "heck 0.4.0", "proc-macro2", "quote", "syn", @@ -84,16 +86,17 @@ dependencies = [ [[package]] name = "argh_shared" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47253b98986dafc7a3e1cf3259194f1f47ac61abb57a57f46ec09e48d004ecda" +checksum = "149f75bbec1827618262e0855a68f0f9a7f2edc13faebf33c4f16d6725edb6a9" [[package]] name = "async-io" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" +checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" dependencies = [ + "autocfg", "concurrent-queue", "futures-lite", "libc", @@ -212,9 +215,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "byteorder" @@ -288,6 +291,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "concurrent-queue" version = "1.2.4" @@ -299,14 +312,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" +checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" dependencies = [ "encode_unicode", + "lazy_static", "libc", - "once_cell", "terminal_size", + "unicode-width", "winapi 0.3.9", ] @@ -337,9 +351,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -364,12 +378,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ "cfg-if 1.0.0", - "once_cell", ] [[package]] @@ -418,14 +431,59 @@ dependencies = [ ] [[package]] -name = "dashmap" -version = "5.3.4" +name = "cxx" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" +checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dashmap" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ "cfg-if 1.0.0", "hashbrown 0.12.3", "lock_api", + "once_cell", "parking_lot_core 0.9.3", ] @@ -545,9 +603,9 @@ dependencies = [ [[package]] name = "either" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encode_unicode" @@ -639,11 +697,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] @@ -684,9 +741,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -699,9 +756,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -709,15 +766,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -726,9 +783,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-lite" @@ -747,9 +804,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ "proc-macro2", "quote", @@ -758,21 +815,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-channel", "futures-core", @@ -832,7 +889,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" dependencies = [ - "ahash", + "ahash 0.4.7", ] [[package]] @@ -840,6 +897,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.6", +] [[package]] name = "heck" @@ -850,6 +910,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -920,9 +986,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -969,24 +1035,34 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.45" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" dependencies = [ "android_system_properties", "core-foundation-sys", + "iana-time-zone-haiku", "js-sys", "wasm-bindgen", "winapi 0.3.9", ] [[package]] -name = "idna" -version = "0.2.3" +name = "iana-time-zone-haiku" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -1003,14 +1079,13 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.16.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +checksum = "bfddc9561e8baf264e0e45e197fd7696320026eb10a8180340debc27b18f535b" dependencies = [ "console", - "lazy_static", "number_prefix", - "regex", + "unicode-width", ] [[package]] @@ -1059,15 +1134,15 @@ checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -1131,9 +1206,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.132" +version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" [[package]] name = "libdbus-sys" @@ -1171,10 +1246,19 @@ dependencies = [ ] [[package]] -name = "lock_api" -version = "0.4.7" +name = "link-cplusplus" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", @@ -1199,7 +1283,7 @@ dependencies = [ "dirs-next", "objc-foundation", "objc_id", - "time 0.3.13", + "time 0.3.15", ] [[package]] @@ -1234,12 +1318,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "maybe-async" version = "0.2.6" @@ -1291,9 +1369,9 @@ checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1425,13 +1503,13 @@ dependencies = [ [[package]] name = "notify-rust" -version = "4.5.8" +version = "4.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a995a3d2834cefa389218e7a35156e8ce544bc95f836900da01ee0b26a07e9d4" +checksum = "368e89ea58df747ce88be669ae44e79783c1d30bfd540ad0fc520b3f41f0b3b0" dependencies = [ "dbus", "mac-notification-sys", - "winrt-notification", + "tauri-winrt-notification", ] [[package]] @@ -1566,9 +1644,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "opaque-debug" @@ -1578,9 +1656,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23a407004a1033f53e93f9b45580d14de23928faad187384f891507c9b0c045" +checksum = "b4a3100141f1733ea40b53381b0ae3117330735ef22309a190ac57b9576ea716" dependencies = [ "pathdiff", "windows-sys", @@ -1588,9 +1666,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.41" +version = "0.10.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0" +checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -1629,9 +1707,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.75" +version = "0.9.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" +checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" dependencies = [ "autocfg", "cc", @@ -1734,9 +1812,9 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pin-project-lite" @@ -1758,10 +1836,11 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "polling" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ + "autocfg", "cfg-if 1.0.0", "libc", "log", @@ -1777,14 +1856,14 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "pretty_assertions" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89f989ac94207d048d92db058e4f6ec7342b0971fc58d1271ca148b799b3563" +checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" dependencies = [ - "ansi_term", "ctor", "diff", "output_vt100", + "yansi", ] [[package]] @@ -1833,9 +1912,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ "unicode-ident", ] @@ -1849,6 +1928,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.21" @@ -1881,9 +1969,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1993,9 +2081,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" +checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" dependencies = [ "base64", "bytes", @@ -2009,9 +2097,9 @@ dependencies = [ "hyper-rustls", "ipnet", "js-sys", - "lazy_static", "log", "mime", + "once_cell", "percent-encoding", "pin-project-lite", "rustls", @@ -2047,13 +2135,11 @@ dependencies = [ [[package]] name = "rpassword" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +checksum = "26b763cb66df1c928432cc35053f8bd4cec3335d8559fc16010017d16b3c1680" dependencies = [ "libc", - "serde", - "serde_json", "winapi 0.3.9", ] @@ -2154,6 +2240,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.7.0" @@ -2186,9 +2278,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -2209,16 +2301,16 @@ dependencies = [ [[package]] name = "self_update" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88c865d17fb512577be02a09fd2fd96c31c7e46fe649205d84feefd8b2a332da" +checksum = "7e08f3ce73aed26096783c26570ba416ff8f4524c89a14bcdf068967dc80daef" dependencies = [ "either", "flate2", "hyper", "indicatif", "log", - "quick-xml", + "quick-xml 0.22.0", "regex", "reqwest", "semver", @@ -2230,15 +2322,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" [[package]] name = "serde" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] @@ -2257,9 +2349,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -2268,9 +2360,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" dependencies = [ "itoa", "ryu", @@ -2377,7 +2469,7 @@ checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786" dependencies = [ "log", "termcolor", - "time 0.3.13", + "time 0.3.15", ] [[package]] @@ -2391,9 +2483,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smawk" @@ -2403,9 +2495,9 @@ checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi 0.3.9", @@ -2461,7 +2553,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "syn", @@ -2488,9 +2580,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.99" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -2508,6 +2600,17 @@ dependencies = [ "xattr", ] +[[package]] +name = "tauri-winrt-notification" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +dependencies = [ + "quick-xml 0.23.1", + "strum", + "windows", +] + [[package]] name = "tempfile" version = "3.3.0" @@ -2587,9 +2690,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" dependencies = [ "smawk", "unicode-linebreak", @@ -2598,18 +2701,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -2640,9 +2743,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ "itoa", "libc", @@ -2673,9 +2776,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.20.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" dependencies = [ "autocfg", "bytes", @@ -2683,7 +2786,6 @@ dependencies = [ "memchr", "mio 0.8.4", "num_cpus", - "once_cell", "pin-project-lite", "socket2", "winapi 0.3.9", @@ -2702,9 +2804,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" dependencies = [ "futures-core", "pin-project-lite", @@ -2713,9 +2815,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ "bytes", "futures-core", @@ -2742,9 +2844,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -2753,9 +2855,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", ] @@ -2829,39 +2931,40 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-linebreak" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a52dcaab0c48d931f7cc8ef826fa51690a08e1ea55117ef26f89864f532383f" +checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137" dependencies = [ + "hashbrown 0.12.3", "regex", ] [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-width" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "untrusted" @@ -2871,13 +2974,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -2950,9 +3052,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2960,9 +3062,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -2975,9 +3077,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2987,9 +3089,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2997,9 +3099,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -3010,15 +3112,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -3054,21 +3156,22 @@ dependencies = [ [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] name = "whoami" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" +checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571" dependencies = [ + "bumpalo", "wasm-bindgen", "web-sys", ] @@ -3124,14 +3227,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.24.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f39345ae0c8ab072c0ac7fe8a8b411636aa34f89be19ddd0d9226544f13944" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" dependencies = [ - "windows_i686_gnu 0.24.0", - "windows_i686_msvc 0.24.0", - "windows_x86_64_gnu 0.24.0", - "windows_x86_64_msvc 0.24.0", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", ] [[package]] @@ -3140,7 +3244,7 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "windows_aarch64_msvc", + "windows_aarch64_msvc 0.36.1", "windows_i686_gnu 0.36.1", "windows_i686_msvc 0.36.1", "windows_x86_64_gnu 0.36.1", @@ -3154,10 +3258,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] -name = "windows_i686_gnu" -version = "0.24.0" +name = "windows_aarch64_msvc" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" [[package]] name = "windows_i686_gnu" @@ -3166,10 +3270,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] -name = "windows_i686_msvc" -version = "0.24.0" +name = "windows_i686_gnu" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" [[package]] name = "windows_i686_msvc" @@ -3178,10 +3282,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] -name = "windows_x86_64_gnu" -version = "0.24.0" +name = "windows_i686_msvc" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" [[package]] name = "windows_x86_64_gnu" @@ -3190,10 +3294,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] -name = "windows_x86_64_msvc" -version = "0.24.0" +name = "windows_x86_64_gnu" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" [[package]] name = "windows_x86_64_msvc" @@ -3201,6 +3305,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + [[package]] name = "winreg" version = "0.10.1" @@ -3210,17 +3320,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "winrt-notification" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4" -dependencies = [ - "strum", - "windows", - "xml-rs", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -3246,6 +3345,12 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "zbus" version = "1.9.3" @@ -3291,7 +3396,7 @@ dependencies = [ "crc32fast", "crossbeam-utils", "flate2", - "time 0.3.13", + "time 0.3.15", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index dcb0353..dfff6a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ name = "termscp" path = "src/main.rs" [dependencies] -argh = "0.1.8" +argh = "0.1.9" bitflags = "1.3.2" bytesize = "1.1.0" chrono = "0.4.22" @@ -45,31 +45,31 @@ lazy_static = "1.4.0" log = "0.4.17" magic-crypt = "3.1.10" notify = "4.0.17" -notify-rust = { version = "4.5.6", default-features = false, features = [ "d" ] } -open = "3.0.2" +notify-rust = { version = "4.5.10", default-features = false, features = [ "d" ] } +open = "3.0.3" rand = "0.8.5" remotefs = "^0.2.0" remotefs-aws-s3 = { version = "^0.2.1", default-features = false, features = [ "find", "rustls" ] } remotefs-ftp = { version = "^0.1.2", features = [ "vendored", "native-tls" ] } remotefs-ssh = { version = "^0.1.2", features = [ "ssh2-vendored" ] } -rpassword = "6.0.1" -self_update = { version = "0.30.0", default-features = false, features = [ "rustls", "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } -serde = { version = "^1.0.0", features = [ "derive" ] } +rpassword = "7.0.0" +self_update = { version = "0.32.0", default-features = false, features = [ "rustls", "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } +serde = { version = "^1", features = [ "derive" ] } simplelog = "0.12.0" ssh2-config = "^0.1.3" tempfile = "3.2.0" -thiserror = "^1.0.0" +thiserror = "^1" toml = "0.5.0" tui-realm-stdlib = "1.1.7" tuirealm = "1.8.0" -unicode-width = "0.1.8" +unicode-width = "0.1.10" version-compare = "0.1.0" -whoami = "1.2.1" +whoami = "1.2.3" wildmatch = "2.1.1" [dev-dependencies] -pretty_assertions = "1.2.1" -serial_test = "^0.9.0" +pretty_assertions = "^1.3" +serial_test = "^0.9" [features] default = [ "with-keyring" ] diff --git a/README.md b/README.md index a2a36d4..263a289 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ The user manual can be found on the [termscp's website](https://veeso.github.io/ ## Upcoming Features 🧪 -For **2022** there will be two major updates during the year. +For **2023** there will be two major updates during the year. Planned for *future updates ⏲️*: @@ -235,9 +235,8 @@ Planned for *future updates ⏲️*: - 🇫🇷 French - 🇩🇪 German - 🇮🇹 Italian - - 🇳🇱 Dutch - 🇪🇸 Spanish -- **Configuration profile for bookmarks 📚**: Basically this feature adds the possibility to have a specific setup for a certain host, instead of having only one global configuration. (Maybe will be postponed to spring 2022). +- **Configuration profile for bookmarks 📚**: Basically this feature adds the possibility to have a specific setup for a certain host, instead of having only one global configuration. Along to new features, termscp developments is now focused on UX and performance improvements, so if you have any suggestion, feel free to open an issue. From ae350b4bfa29cdec9ed8740a1c056686fd6f9fef Mon Sep 17 00:00:00 2001 From: veeso Date: Sat, 15 Oct 2022 14:01:00 +0200 Subject: [PATCH 15/15] termscp 0.10 --- CHANGELOG.md | 2 +- Cargo.toml | 10 ++++++++-- LICENSE | 2 +- README.md | 2 +- dist/build/windows.ps1 | 4 ++-- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3256450..430c459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ ## 0.10.0 -Released on ?? +Released on 15/10/2022 > ⭐ 500 stars update ⭐ > Thank you for supporting termscp and make it reaching 500 stars on Github diff --git a/Cargo.toml b/Cargo.toml index dfff6a2..d2ca8e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,8 +50,7 @@ open = "3.0.3" rand = "0.8.5" remotefs = "^0.2.0" remotefs-aws-s3 = { version = "^0.2.1", default-features = false, features = [ "find", "rustls" ] } -remotefs-ftp = { version = "^0.1.2", features = [ "vendored", "native-tls" ] } -remotefs-ssh = { version = "^0.1.2", features = [ "ssh2-vendored" ] } + rpassword = "7.0.0" self_update = { version = "0.32.0", default-features = false, features = [ "rustls", "archive-tar", "archive-zip", "compression-flate2", "compression-zip-deflate" ] } serde = { version = "^1", features = [ "derive" ] } @@ -76,8 +75,15 @@ default = [ "with-keyring" ] github-actions = [ ] with-keyring = [ "keyring" ] +[target."cfg(target_family = \"windows\")"] +[target."cfg(target_family = \"windows\")".dependencies] +remotefs-ftp = { version = "^0.1.2", features = [ "native-tls" ] } +remotefs-ssh = "^0.1.2" + [target."cfg(target_family = \"unix\")"] [target."cfg(target_family = \"unix\")".dependencies] +remotefs-ftp = { version = "^0.1.2", features = [ "vendored", "native-tls" ] } +remotefs-ssh = { version = "^0.1.2", features = [ "ssh2-vendored" ] } users = "0.11.0" [profile.dev] diff --git a/LICENSE b/LICENSE index af590f2..5178fdb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Christian Visintin +Copyright (c) 2020-2022 Christian Visintin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 263a289..39a0938 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@

Developed by @veeso

-

Current version: 0.10.0 (09/06/2022)

+

Current version: 0.10.0 (15/10/2022)