diff options
| author | lukeflo | 2025-06-02 17:40:50 +0200 |
|---|---|---|
| committer | lukeflo | 2025-06-02 17:40:50 +0200 |
| commit | 201aecebcd7c85127df9c43da01fdafc3465e53e (patch) | |
| tree | a3ff2fe49886d6bd33f0c6627d07669b377cbd22 /src | |
| parent | 1a34950a45a8fba97dca432fe36569eec1a05c8f (diff) | |
| download | bibiman-201aecebcd7c85127df9c43da01fdafc3465e53e.tar.gz bibiman-201aecebcd7c85127df9c43da01fdafc3465e53e.zip | |
impl check for valid filepath, update README
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.rs | 4 | ||||
| -rw-r--r-- | src/bibiman.rs | 16 |
2 files changed, 16 insertions, 4 deletions
@@ -406,9 +406,9 @@ pub fn open_connected_file(cfg: &BibiConfig, file: &OsStr) -> Result<()> { // } else { // PathBuf::from(file) // }; - let file = PathBuf::from(file); + // let file = PathBuf::from(file); - let file = expand_home(&file).into_os_string(); + // let file = expand_home(&file).into_os_string(); // Pass filepath as argument, pipe stdout and stderr to /dev/null // to keep the TUI clean (where is it piped on Windows???) diff --git a/src/bibiman.rs b/src/bibiman.rs index 583d849..ea9dbf5 100644 --- a/src/bibiman.rs +++ b/src/bibiman.rs @@ -15,6 +15,7 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. ///// +use crate::app::expand_home; use crate::bibiman::entries::EntryTableColumn; use crate::bibiman::{bibisetup::*, search::BibiSearch}; use crate::cliargs::CLIArgs; @@ -674,16 +675,27 @@ impl Bibiman { let object = self.entry_table.entry_table_items[entry_idx].doi_url(); let url = app::prepare_weblink(object); app::open_connected_link(cfg, &url)?; + self.close_popup(); } else if self.popup_area.popup_list[popup_idx].0.contains("File") { // TODO: Selection for multiple files // let object = self.entry_table.entry_table_items[entry_idx].filepath()[0]; + let file = expand_home(&PathBuf::from(popup_entry.clone())); let object: OsString = popup_entry.into(); - app::open_connected_file(cfg, &object)?; + if file.is_file() { + app::open_connected_file(cfg, &object)?; + self.close_popup(); + } else { + self.open_popup( + PopupKind::MessageError, + Some("No valid file path: "), + Some(object.to_str().unwrap()), + None, + )?; + } } else { eprintln!("Unable to find ressource to open"); }; // run command to open file/Url - self.close_popup(); Ok(()) } |
