From cd08c47fdf5d3c78bf078e8bea026b552252cb89 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Sun, 22 Oct 2023 09:59:31 +0800 Subject: [PATCH] Bump dependencies --- Cargo.lock | 119 +++++++++--------- Cargo.toml | 18 +-- assets/{ => syntax}/basic/http.sublime-syntax | 0 assets/{ => syntax}/basic/json.sublime-syntax | 0 assets/{ => syntax}/large/css.sublime-syntax | 0 assets/{ => syntax}/large/html.sublime-syntax | 0 assets/{ => syntax}/large/js.sublime-syntax | 0 assets/{ => syntax}/large/xml.sublime-syntax | 0 assets/{ => themes}/ansi.tmTheme | 0 assets/{ => themes}/fruity.tmTheme | 0 assets/{ => themes}/monokai.tmTheme | 0 assets/{ => themes}/solarized.tmTheme | 0 build.rs | 13 +- src/auth.rs | 2 +- src/download.rs | 4 +- src/formatting.rs | 8 +- src/main.rs | 2 +- 17 files changed, 92 insertions(+), 74 deletions(-) rename assets/{ => syntax}/basic/http.sublime-syntax (100%) rename assets/{ => syntax}/basic/json.sublime-syntax (100%) rename assets/{ => syntax}/large/css.sublime-syntax (100%) rename assets/{ => syntax}/large/html.sublime-syntax (100%) rename assets/{ => syntax}/large/js.sublime-syntax (100%) rename assets/{ => syntax}/large/xml.sublime-syntax (100%) rename assets/{ => themes}/ansi.tmTheme (100%) rename assets/{ => themes}/fruity.tmTheme (100%) rename assets/{ => themes}/monokai.tmTheme (100%) rename assets/{ => themes}/solarized.tmTheme (100%) diff --git a/Cargo.lock b/Cargo.lock index 9ff875a..48eaaac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -102,7 +102,7 @@ dependencies = [ "anstyle 0.3.5", "bstr", "doc-comment", - "predicates 3.0.2", + "predicates", "predicates-core", "predicates-tree", "wait-timeout", @@ -125,12 +125,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.0" @@ -295,6 +289,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", + "unicode-width", "windows-sys 0.42.0", ] @@ -418,22 +413,23 @@ dependencies = [ [[package]] name = "dirs" -version = "3.0.2" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" -version = "0.3.7" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -807,21 +803,22 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.16.2" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ "console", - "lazy_static", + "instant", "number_prefix", - "regex", + "portable-atomic", + "unicode-width", ] [[package]] name = "indoc" -version = "1.0.9" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" [[package]] name = "instant" @@ -901,12 +898,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.141" @@ -1148,6 +1139,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "os_display" version = "0.1.3" @@ -1159,13 +1156,12 @@ dependencies = [ [[package]] name = "pem" -version = "0.8.3" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" dependencies = [ - "base64 0.13.1", - "once_cell", - "regex", + "base64", + "serde", ] [[package]] @@ -1198,7 +1194,7 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bd9647b268a3d3e14ff09c23201133a62589c658db02bb7388c7246aafe0590" dependencies = [ - "base64 0.21.0", + "base64", "indexmap", "line-wrap", "quick-xml", @@ -1206,26 +1202,18 @@ dependencies = [ "time", ] +[[package]] +name = "portable-atomic" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" + [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "predicates" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" -dependencies = [ - "difflib", - "float-cmp", - "itertools", - "normalize-line-endings", - "predicates-core", - "regex", -] - [[package]] name = "predicates" version = "3.0.2" @@ -1234,8 +1222,11 @@ checksum = "c575290b64d24745b6c57a12a31465f0a66f3a4799686a6921526a33b0797965" dependencies = [ "anstyle 0.3.5", "difflib", + "float-cmp", "itertools", + "normalize-line-endings", "predicates-core", + "regex", ] [[package]] @@ -1364,7 +1355,7 @@ checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.6.29", ] [[package]] @@ -1379,13 +1370,19 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + [[package]] name = "reqwest" version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.0", + "base64", "bytes", "cookie 0.16.2", "cookie_store 0.16.1", @@ -1449,9 +1446,20 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316" [[package]] name = "rpassword" -version = "5.0.1" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +dependencies = [ + "libc", + "rtoolbox", + "winapi", +] + +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", "winapi", @@ -1501,7 +1509,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64", ] [[package]] @@ -1689,22 +1697,21 @@ dependencies = [ [[package]] name = "syntect" -version = "4.6.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b20815bbe80ee0be06e6957450a841185fcf690fe0178f14d77a05ce2caa031" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode", "bitflags", "flate2", "fnv", - "lazy_static", - "lazycell", + "once_cell", "onig", "plist", - "regex-syntax", + "regex-syntax 0.7.5", "serde", - "serde_derive", "serde_json", + "thiserror", "walkdir", "yaml-rust", ] @@ -2327,7 +2334,7 @@ dependencies = [ "once_cell", "os_display", "pem", - "predicates 2.1.5", + "predicates", "rand", "regex", "reqwest", diff --git a/Cargo.toml b/Cargo.toml index 65decd4..b8ad8ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,11 +23,11 @@ clap = { version = "4.0", features = ["derive", "wrap_help", "string"] } clap_complete = { version = "4.0", optional = true } cookie_store = { version = "0.20.0", features = ["preserve_order"] } digest_auth = "0.3.0" -dirs = "3.0.1" +dirs = "5.0" encoding_rs = "0.8.28" encoding_rs_io = "0.1.7" flate2 = "1.0.22" -indicatif = "0.16.2" +indicatif = "0.17" jsonxf = "1.1.0" memchr = "2.4.1" mime = "0.3.16" @@ -36,11 +36,11 @@ mime_guess = "2.0" network-interface = { version = "1.0.0", optional = true } once_cell = "1.8.0" os_display = "0.1.3" -pem = "0.8.2" +pem = "3.0" rand = "0.8.3" regex = { version = "1", default-features = false, features = ["std"] } roff = { version = "0.2.1", optional = true } -rpassword = "5.0.0" +rpassword = "7.2.0" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", features = ["preserve_order"] } serde_urlencoded = "0.7.0" @@ -55,20 +55,20 @@ default-features = false features = ["json", "multipart", "blocking", "socks", "cookies"] [dependencies.syntect] -version = "4.4" +version = "5.1" default-features = false features = ["parsing", "dump-load", "regex-onig"] [build-dependencies.syntect] -version = "4.4" +version = "5.1" default-features = false -features = ["yaml-load", "dump-create", "regex-onig"] +features = ["dump-create", "plist-load", "regex-onig", "yaml-load"] [dev-dependencies] assert_cmd = "2.0.8" form_urlencoded = "1.0.1" -indoc = "1.0" -predicates = "2.1.1" +indoc = "2.0" +predicates = "3.0" hyper = { version = "0.14", features = ["server"] } tokio = { version = "1", features = ["rt", "sync", "time"] } tempfile = "3.2.0" diff --git a/assets/basic/http.sublime-syntax b/assets/syntax/basic/http.sublime-syntax similarity index 100% rename from assets/basic/http.sublime-syntax rename to assets/syntax/basic/http.sublime-syntax diff --git a/assets/basic/json.sublime-syntax b/assets/syntax/basic/json.sublime-syntax similarity index 100% rename from assets/basic/json.sublime-syntax rename to assets/syntax/basic/json.sublime-syntax diff --git a/assets/large/css.sublime-syntax b/assets/syntax/large/css.sublime-syntax similarity index 100% rename from assets/large/css.sublime-syntax rename to assets/syntax/large/css.sublime-syntax diff --git a/assets/large/html.sublime-syntax b/assets/syntax/large/html.sublime-syntax similarity index 100% rename from assets/large/html.sublime-syntax rename to assets/syntax/large/html.sublime-syntax diff --git a/assets/large/js.sublime-syntax b/assets/syntax/large/js.sublime-syntax similarity index 100% rename from assets/large/js.sublime-syntax rename to assets/syntax/large/js.sublime-syntax diff --git a/assets/large/xml.sublime-syntax b/assets/syntax/large/xml.sublime-syntax similarity index 100% rename from assets/large/xml.sublime-syntax rename to assets/syntax/large/xml.sublime-syntax diff --git a/assets/ansi.tmTheme b/assets/themes/ansi.tmTheme similarity index 100% rename from assets/ansi.tmTheme rename to assets/themes/ansi.tmTheme diff --git a/assets/fruity.tmTheme b/assets/themes/fruity.tmTheme similarity index 100% rename from assets/fruity.tmTheme rename to assets/themes/fruity.tmTheme diff --git a/assets/monokai.tmTheme b/assets/themes/monokai.tmTheme similarity index 100% rename from assets/monokai.tmTheme rename to assets/themes/monokai.tmTheme diff --git a/assets/solarized.tmTheme b/assets/themes/solarized.tmTheme similarity index 100% rename from assets/solarized.tmTheme rename to assets/themes/solarized.tmTheme diff --git a/build.rs b/build.rs index 1542244..0d68fd3 100644 --- a/build.rs +++ b/build.rs @@ -36,7 +36,12 @@ fn features() -> String { } fn main() { - for dir in ["assets", "assets/basic", "assets/large"] { + for dir in [ + "assets/syntax", + "assets/syntax/basic", + "assets/syntax/large", + "assets/themes", + ] { println!("cargo:rerun-if-changed={}", dir); for entry in read_dir(dir).unwrap() { let path = entry.unwrap().path(); @@ -47,11 +52,11 @@ fn main() { } } - build_syntax("assets/basic", "basic.packdump"); - build_syntax("assets/large", "large.packdump"); + build_syntax("assets/syntax/basic", "basic.packdump"); + build_syntax("assets/syntax/large", "large.packdump"); let out_dir = env::var_os("OUT_DIR").unwrap(); - let ts = ThemeSet::load_from_folder("assets").unwrap(); + let ts = ThemeSet::load_from_folder("assets/themes").unwrap(); dump_to_file(&ts, Path::new(&out_dir).join("themepack.themedump")).unwrap(); println!("cargo:rustc-env=XH_FEATURES={}", features()); diff --git a/src/auth.rs b/src/auth.rs index e206d60..b62f4b7 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -55,7 +55,7 @@ pub fn parse_auth(auth: &str, host: &str) -> io::Result<(String, Option) } else { let username = auth.to_string(); let prompt = format!("http: password for {}@{}: ", username, host); - let password = rpassword::read_password_from_tty(Some(&prompt))?; + let password = rpassword::prompt_password(prompt)?; Ok((username, Some(password))) } } diff --git a/src/download.rs b/src/download.rs index c07fb6c..c8ea5a7 100644 --- a/src/download.rs +++ b/src/download.rs @@ -227,7 +227,7 @@ pub fn download_file( BAR_TEMPLATE } else { UNCOLORED_BAR_TEMPLATE - }) + })? .progress_chars("#>-"); Some(ProgressBar::new(total_length).with_style(style)) } else { @@ -236,7 +236,7 @@ pub fn download_file( SPINNER_TEMPLATE } else { UNCOLORED_SPINNER_TEMPLATE - }); + })?; Some(ProgressBar::new_spinner().with_style(style)) }; if let Some(pb) = &pb { diff --git a/src/formatting.rs b/src/formatting.rs index 24b359f..2805f40 100644 --- a/src/formatting.rs +++ b/src/formatting.rs @@ -54,9 +54,15 @@ impl<'a> Highlighter<'a> { } /// Write a single piece of highlighted text. + /// May return a [`io::ErrorKind::Other`] when there is a problem + /// during highlighting. pub fn highlight(&mut self, text: &str) -> io::Result<()> { for line in LinesWithEndings::from(text) { - for (style, component) in self.highlighter.highlight(line, self.syntax_set) { + for (style, component) in self + .highlighter + .highlight_line(line, self.syntax_set) + .map_err(|e| io::Error::new(io::ErrorKind::Other, e))? + { self.out.set_color(&convert_style(style))?; write!(self.out, "{}", component)?; } diff --git a/src/main.rs b/src/main.rs index be1da8e..cfb2a99 100644 --- a/src/main.rs +++ b/src/main.rs @@ -213,7 +213,7 @@ fn run(args: Cli) -> Result { })?; client = client.tls_built_in_root_certs(false); - for pem in pem::parse_many(buffer) { + for pem in pem::parse_many(buffer)? { let certificate = reqwest::Certificate::from_pem(pem::encode(&pem).as_bytes()) .with_context(|| { format!("Failed to load the custom CA bundle: {}", path.display())