diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-07-20 18:41:16 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-07-20 18:41:16 +0200 |
commit | 24d7d3e14ff14d6e43670023bd0862e82f9408e7 (patch) | |
tree | 79d0da401fac0dbc451f8c0ac63e2306d4c4ac16 /pkgs/by-name/ts/tskm/src/browser | |
parent | modules/legacy/conf/iamb: Move to `by-name` and modernize (diff) | |
download | nixos-config-24d7d3e14ff14d6e43670023bd0862e82f9408e7.zip |
pkgs/tskm: Support raw paths in place of URLs
Otherwise, using `tskm` as an URL opener might fail (e.g., as `xdg-open /some/path`, would still invoke it).
Diffstat (limited to 'pkgs/by-name/ts/tskm/src/browser')
-rw-r--r-- | pkgs/by-name/ts/tskm/src/browser/mod.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/pkgs/by-name/ts/tskm/src/browser/mod.rs b/pkgs/by-name/ts/tskm/src/browser/mod.rs index d83bcbc4..2129982f 100644 --- a/pkgs/by-name/ts/tskm/src/browser/mod.rs +++ b/pkgs/by-name/ts/tskm/src/browser/mod.rs @@ -14,11 +14,14 @@ use url::Url; use crate::{state::State, task}; #[allow(clippy::too_many_lines)] -pub fn open_in_browser( +pub fn open_in_browser<U>( selected_project: &task::Project, state: &mut State, - urls: Option<Vec<Url>>, -) -> Result<()> { + urls: Option<Vec<U>>, +) -> Result<()> +where + U: Into<Url>, +{ let old_project: Option<task::Project> = task::Project::get_current().context("Failed to get currently active project")?; let old_task: Option<task::Task> = @@ -129,7 +132,7 @@ pub fn open_in_browser( if let Some(mut stream) = socket { let real_url = if let Some(urls) = urls { - urls.into_iter().map(|url| url.to_string()).collect() + urls.into_iter().map(|url| url.into().to_string()).collect() } else { // Always add a new tab, so that qutebrowser is marked as “urgent”. vec!["qute://start".to_owned()] @@ -153,7 +156,10 @@ pub fn open_in_browser( ExitStatus::default() } else { let args = if let Some(urls) = urls { - urls.iter().map(ToString::to_string).collect() + urls.into_iter() + .map(Into::<Url>::into) + .map(|u| u.to_string()) + .collect() } else { vec![] }; |