summaryrefslogtreecommitdiffstats
path: root/zellij-utils
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2022-11-03 11:06:37 +0100
committerGitHub <noreply@github.com>2022-11-03 11:06:37 +0100
commit9ebc9b74eeed25b52ba0543ecceab25c7805642b (patch)
tree1f35b3409ee8808c3eb339d2ee6d7819b5d1f866 /zellij-utils
parent4905ae65b8084d9f6adc31f9260b5a3cca6c920b (diff)
fix(edit): treat cwd properly (#1904)
Diffstat (limited to 'zellij-utils')
-rw-r--r--zellij-utils/src/cli.rs8
-rw-r--r--zellij-utils/src/input/actions.rs4
2 files changed, 11 insertions, 1 deletions
diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs
index baa53b9a7..694032dc1 100644
--- a/zellij-utils/src/cli.rs
+++ b/zellij-utils/src/cli.rs
@@ -162,6 +162,10 @@ pub enum Sessions {
/// Open the new pane in floating mode
#[clap(short, long, value_parser, default_value("false"), takes_value(false))]
floating: bool,
+
+ /// Change the working directory of the editor
+ #[clap(long, value_parser)]
+ cwd: Option<PathBuf>,
},
ConvertConfig {
old_config_file: PathBuf,
@@ -282,6 +286,10 @@ pub enum CliAction {
/// Open the new pane in floating mode
#[clap(short, long, value_parser, default_value("false"), takes_value(false))]
floating: bool,
+
+ /// Change the working directory of the editor
+ #[clap(long, value_parser)]
+ cwd: Option<PathBuf>,
},
/// Switch input mode of all connected clients [locked|pane|tab|resize|move|search|session]
SwitchMode { input_mode: InputMode },
diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs
index 189f3cd96..e0337da09 100644
--- a/zellij-utils/src/input/actions.rs
+++ b/zellij-utils/src/input/actions.rs
@@ -301,10 +301,12 @@ impl Action {
file,
line_number,
floating,
+ cwd,
} => {
let mut file = file;
+ let cwd = cwd.or_else(|| std::env::current_dir().ok());
if file.is_relative() {
- if let Some(cwd) = std::env::current_dir().ok() {
+ if let Some(cwd) = cwd {
file = cwd.join(file);
}
}