From b770b59e7b383a4cad9980b7a67019b5f46d901f Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Sun, 27 Mar 2022 16:05:04 +0200 Subject: [PATCH] fix: Use `dirs` crate for home_dir() function --- Cargo.lock | 2 ++ Cargo.toml | 1 + plugins/Cargo.toml | 1 + plugins/src/files/mod.rs | 2 +- plugins/src/scripts/mod.rs | 2 +- plugins/src/web/mod.rs | 5 ++--- service/src/plugins/config.rs | 1 + src/lib.rs | 2 +- 8 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a557fef..80ed6d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1406,6 +1406,7 @@ version = "1.1.1" dependencies = [ "blocking", "const_format", + "dirs 4.0.0", "futures-lite", "serde", "serde_json", @@ -1429,6 +1430,7 @@ version = "1.1.1" dependencies = [ "anyhow", "async-pidfd", + "dirs 4.0.0", "flume", "fork", "freedesktop-desktop-entry", diff --git a/Cargo.toml b/Cargo.toml index 2e80f1b..c9a5dc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ members = ["bin", "plugins", "service"] [dependencies] blocking = "1.2.0" const_format = "0.2.22" +dirs = "4.0.0" futures-lite = "1.12.0" serde = { version = "1.0.136", features = ["derive"] } serde_json = "1.0.79" diff --git a/plugins/Cargo.toml b/plugins/Cargo.toml index 7a423cd..c1c0414 100644 --- a/plugins/Cargo.toml +++ b/plugins/Cargo.toml @@ -34,3 +34,4 @@ url = "2.2.2" sysfs-class = "0.1.3" anyhow = "1.0.56" flume = "0.10.12" +dirs = "4.0.0" diff --git a/plugins/src/files/mod.rs b/plugins/src/files/mod.rs index c41d0b1..a2ac343 100644 --- a/plugins/src/files/mod.rs +++ b/plugins/src/files/mod.rs @@ -46,7 +46,7 @@ impl Default for App { fn default() -> Self { Self { entries: BTreeMap::default(), - home: std::env::home_dir().expect("no home dir"), + home: dirs::home_dir().expect("no home dir"), out: async_stdout(), search_results: Vec::with_capacity(100), } diff --git a/plugins/src/scripts/mod.rs b/plugins/src/scripts/mod.rs index 67a9d73..f316500 100644 --- a/plugins/src/scripts/mod.rs +++ b/plugins/src/scripts/mod.rs @@ -73,7 +73,7 @@ impl App { let mut queue = VecDeque::new(); queue.push_back( - std::env::home_dir() + dirs::home_dir() .expect("user does not have home dir") .join(LOCAL_PATH), ); diff --git a/plugins/src/web/mod.rs b/plugins/src/web/mod.rs index 416f8af..f3e57d1 100644 --- a/plugins/src/web/mod.rs +++ b/plugins/src/web/mod.rs @@ -57,7 +57,7 @@ const ALLOWED_FAVICON_MIME: [&str; 5] = [ impl Default for App { fn default() -> Self { - let cache = std::env::home_dir() + let cache = dirs::home_dir() .map(|cache| cache.join(".cache/pop-launcher")) .expect("no home dir"); @@ -228,8 +228,7 @@ async fn favicon_url_from_page_source(domain: &str, client: &HttpClient) -> Opti .text() .await .ok() - .map(|html| parse_favicon(&html)) - .flatten() + .and_then(|html| parse_favicon(&html)) .map(|icon_url| { if !icon_url.starts_with("https://") { format!("https://{}{}", domain, icon_url) diff --git a/service/src/plugins/config.rs b/service/src/plugins/config.rs index 10e82a8..fc89080 100644 --- a/service/src/plugins/config.rs +++ b/service/src/plugins/config.rs @@ -34,6 +34,7 @@ pub struct PluginBinary { path: Cow<'static, str>, #[serde(default)] + #[allow(dead_code)] args: Vec>, } diff --git a/src/lib.rs b/src/lib.rs index 7975beb..9776d03 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -28,7 +28,7 @@ pub fn plugin_paths() -> impl Iterator> { PLUGIN_PATHS.iter().map(|path| { #[allow(deprecated)] if let Some(path) = path.strip_prefix("~/") { - let path = std::env::home_dir() + let path = dirs::home_dir() .expect("user does not have home dir") .join(path); Cow::Owned(path)