diff --git a/Cargo.lock b/Cargo.lock index df73f35..ec912ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -187,9 +187,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "bytesize" @@ -262,9 +262,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.15" +version = "3.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bbe24bbd31a185bc2c4f7c2abe80bea13a20d57ee4e55be70ac512bdc76417" +checksum = "a3dbbb6653e7c55cc8595ad3e1f7be8f32aba4eb7ff7f0fd1163d4f3d137c0a9" dependencies = [ "atty", "bitflags", @@ -301,14 +301,13 @@ dependencies = [ [[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", "once_cell", - "regex", "terminal_size", "unicode-width", "winapi", @@ -464,18 +463,18 @@ dependencies = [ [[package]] name = "enum-map" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ddfe61e8040145222887d0d32a939c70c8cae681490d72fb868305e9b40ced8" +checksum = "f5a56d54c8dd9b3ad34752ed197a4eb2a6601bc010808eb097a04a58ae4c43e1" dependencies = [ "enum-map-derive", ] [[package]] name = "enum-map-derive" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d1c54e25a57236a790ecf051c2befbb57740c9b86c4273eac378ba84d620d6" +checksum = "a9045e2676cd5af83c3b167d917b0a5c90a4d8e266e2683d6631b235c457fc27" dependencies = [ "proc-macro2", "quote", @@ -499,7 +498,7 @@ checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.15", + "redox_syscall 0.2.16", "windows-sys", ] @@ -839,9 +838,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.0-rc.11" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017d0ce94b8e91e29d2c78ed891e57e5ec3dc4371820a9d96abab4af09eb8ad" +checksum = "fcc42b206e70d86ec03285b123e65a5458c92027d1fb2ae3555878b8113b3ddf" dependencies = [ "console", "number_prefix", @@ -1073,7 +1072,7 @@ checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.15", + "redox_syscall 0.2.16", "smallvec", "windows-sys", ] @@ -1233,9 +1232,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534cfe58d6a18cc17120fbf4635d53d14691c1fe4d951064df9bd326178d7d5a" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -1258,7 +1257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom 0.2.7", - "redox_syscall 0.2.15", + "redox_syscall 0.2.16", "thiserror", ] @@ -1655,7 +1654,7 @@ dependencies = [ "cfg-if", "fastrand", "libc", - "redox_syscall 0.2.15", + "redox_syscall 0.2.16", "remove_dir_all", "winapi", ] @@ -1816,9 +1815,9 @@ 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", "pin-project-lite", @@ -1827,9 +1826,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ "once_cell", ] diff --git a/Cargo.toml b/Cargo.toml index 467ac93..886ec95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ chrono = { version = "0.4", features = ["serde"] } tempfile = "3" zstd = "0.11" enum-map = "2" -enum-map-derive = "0.9" +enum-map-derive = "0.10" # local backend walkdir = "2" ignore = "0.4" @@ -67,7 +67,7 @@ clap = { version = "3", features = ["derive"] } rpassword = "6" prettytable-rs = {version = "0.8", default-features = false } bytesize = "1" -indicatif = "0.17.0-rc.10" +indicatif = "0.17" path-absolutize = "3" gethostname = "0.2" humantime = "2" diff --git a/src/commands/helpers.rs b/src/commands/helpers.rs index e716cfe..e70a82d 100644 --- a/src/commands/helpers.rs +++ b/src/commands/helpers.rs @@ -1,3 +1,4 @@ +use std::fmt::Write; use std::fs::File; use std::io::BufReader; use std::path::PathBuf; @@ -6,7 +7,7 @@ use std::time::Duration; use anyhow::{bail, Result}; use bytesize::ByteSize; use indicatif::HumanDuration; -use indicatif::{ProgressBar, ProgressStyle}; +use indicatif::{ProgressBar, ProgressState, ProgressStyle}; use rpassword::{prompt_password, read_password_from_bufread}; use vlog::*; @@ -66,12 +67,12 @@ pub fn progress_bytes() -> ProgressBar { if get_verbosity_level() == 1 { let p = ProgressBar::new(0).with_style( ProgressStyle::default_bar() - .with_key("my_eta", |s| + .with_key("my_eta", |s: &ProgressState, w: &mut dyn Write| match (s.pos(), s.len()){ - (0, _) => "-".to_string(), - (pos,Some(len)) => format!("{:#}", HumanDuration(Duration::from_secs(s.elapsed().as_secs() * (len-pos)/pos))), - (_, _) => "-".to_string(), - }) + (0, _) => write!(w,"-"), + (pos,Some(len)) => write!(w,"{:#}", HumanDuration(Duration::from_secs(s.elapsed().as_secs() * (len-pos)/pos))), + (_, _) => write!(w,"-"), + }.unwrap()) .template("[{elapsed_precise}] {bar:40.cyan/blue} {bytes:>10}/{total_bytes:10} {bytes_per_sec:12} (ETA {my_eta})") .unwrap() );