summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJustin Charette <charetjc@gmail.com>2017-04-01 19:30:29 -0400
committerJoe Wilm <jwilm@users.noreply.github.com>2017-04-03 20:46:08 -0700
commit5b079f6d437c567a1533a719194f6e579a7eedae (patch)
tree49df82009ea231c7088886f5f4b19b7b9c6c999c /src
parent2d1af06c2d17d45e978479f4fc567b706beb1e3e (diff)
Do not replace $SHELL with --command option
Signed-off-by: Justin Charette <charetjc@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/cli.rs10
-rw-r--r--src/tty.rs9
2 files changed, 10 insertions, 9 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 51cdd4f9..f8f76e59 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -25,7 +25,7 @@ pub struct Options {
pub dimensions: Option<Dimensions>,
pub title: String,
pub log_level: log::LogLevelFilter,
- pub shell: Option<Shell<'static>>,
+ pub command: Option<Shell<'static>>,
}
impl Default for Options {
@@ -36,7 +36,7 @@ impl Default for Options {
dimensions: None,
title: DEFAULT_TITLE.to_owned(),
log_level: log::LogLevelFilter::Warn,
- shell: None,
+ command: None,
}
}
}
@@ -123,7 +123,7 @@ impl Options {
// Arg::min_values(1) is set.
let command = String::from(args.next().unwrap());
let args = args.map(String::from).collect();
- options.shell = Some(Shell::new_with_args(command, args));
+ options.command = Some(Shell::new_with_args(command, args));
}
options
@@ -133,7 +133,7 @@ impl Options {
self.dimensions
}
- pub fn shell(&self) -> Option<&Shell> {
- self.shell.as_ref()
+ pub fn command(&self) -> Option<&Shell> {
+ self.command.as_ref()
}
}
diff --git a/src/tty.rs b/src/tty.rs
index 39d3deea..7623abdc 100644
--- a/src/tty.rs
+++ b/src/tty.rs
@@ -188,12 +188,13 @@ pub fn new<T: ToWinsize>(config: &Config, options: &Options, size: T) -> Pty {
let (master, slave) = openpty(win.ws_row as _, win.ws_col as _);
let default_shell = &Shell::new(pw.shell);
- let shell = options.shell()
- .or_else(|| config.shell())
+ let shell = config.shell()
.unwrap_or(&default_shell);
- let mut builder = Command::new(shell.program());
- for arg in shell.args() {
+ let initial_command = options.command().unwrap_or(&shell);
+
+ let mut builder = Command::new(initial_command.program());
+ for arg in initial_command.args() {
builder.arg(arg);
}