From 1ffa85f30f87e9cede66fb5e8dd6d503a7fc7a79 Mon Sep 17 00:00:00 2001 From: Arijit Basu Date: Wed, 21 Apr 2021 08:20:39 +0530 Subject: [PATCH] Do not exit on permission denial While trying to enter restricted directories, log error instead or exiting. --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/app.rs | 18 ++++++++++++------ src/config.rs | 4 +++- src/config.yml | 2 +- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c572ec..425d14f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1630,7 +1630,7 @@ dependencies = [ [[package]] name = "xplr" -version = "0.5.3" +version = "0.5.4" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 2392bc0..37c75d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xplr" -version = "0.5.3" # Update config.yml, config.rs and default.nix +version = "0.5.4" # Update config.yml, config.rs and default.nix authors = ["Arijit Basu "] edition = "2018" description = "A hackable, minimal, fast TUI file explorer" diff --git a/src/app.rs b/src/app.rs index efc1e69..89ed1b4 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1508,12 +1508,18 @@ impl App { fn change_directory(mut self, dir: &str) -> Result { if PathBuf::from(dir).is_dir() { - self.pwd = dir.to_owned(); - env::set_current_dir(&self.pwd)?; - self.history = self.history.push(self.pwd.clone()); - self.msg_out.push_back(MsgOut::Refresh); - }; - Ok(self) + match env::set_current_dir(dir) { + Ok(()) => { + self.pwd = dir.to_owned(); + self.history = self.history.push(self.pwd.clone()); + self.msg_out.push_back(MsgOut::Refresh); + Ok(self) + } + Err(e) => self.log_error(e.to_string()), + } + } else { + Ok(self) + } } fn enter(self) -> Result { diff --git a/src/config.rs b/src/config.rs index 19d2f27..2871822 100644 --- a/src/config.rs +++ b/src/config.rs @@ -665,6 +665,7 @@ impl Config { pub fn is_compatible(&self) -> Result { let result = match self.parsed_version()? { + (0, 5, 4) => true, (0, 5, 3) => true, (0, 5, 2) => true, (0, 5, 1) => true, @@ -677,7 +678,8 @@ impl Config { pub fn upgrade_notification(&self) -> Result> { let result = match self.parsed_version()? { - (0, 5, 3) => None, + (0, 5, 4) => None, + (0, 5, 3) => Some("App version updated. Fixed exit on permission denied"), (0, 5, 2) => Some("App version updated. Now pwd is synced with your terminal session"), (0, 5, 1) => Some("App version updated. Now follow symlinks using 'gf'"), (_, _, _) => Some("App version updated. New: added sort and filter support and some hacks: https://github.com/sayanarijit/xplr/wiki/Hacks"), diff --git a/src/config.yml b/src/config.yml index faaab96..47c8a8c 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,4 +1,4 @@ -version: v0.5.3 +version: v0.5.4 general: show_hidden: false read_only: false