aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/cli.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/cli.rs')
-rw-r--r--alacritty/src/cli.rs49
1 files changed, 22 insertions, 27 deletions
diff --git a/alacritty/src/cli.rs b/alacritty/src/cli.rs
index 9b1b8e6c..21062fce 100644
--- a/alacritty/src/cli.rs
+++ b/alacritty/src/cli.rs
@@ -100,21 +100,6 @@ impl Options {
/// Override configuration file with options from the CLI.
pub fn override_config(&self, config: &mut UiConfig) {
- if let Some(working_directory) = &self.terminal_options.working_directory {
- if working_directory.is_dir() {
- config.terminal_config.pty_config.working_directory =
- Some(working_directory.to_owned());
- } else {
- error!("Invalid working directory: {:?}", working_directory);
- }
- }
-
- if let Some(command) = self.terminal_options.command() {
- config.terminal_config.pty_config.shell = Some(command);
- }
-
- config.terminal_config.pty_config.hold = self.terminal_options.hold;
-
if let Some(title) = self.title.clone() {
config.window.title = title
}
@@ -218,27 +203,37 @@ pub struct TerminalOptions {
}
impl TerminalOptions {
- pub fn new() -> Self {
- Default::default()
- }
-
- pub fn is_empty(&self) -> bool {
- self.working_directory.is_none() && !self.hold && self.command.is_empty()
- }
-
/// Shell override passed through the CLI.
pub fn command(&self) -> Option<Program> {
let (program, args) = self.command.split_first()?;
Some(Program::WithArgs { program: program.clone(), args: args.to_vec() })
}
+
+ /// Override the [`PtyConfig`]'s fields with the [`TerminalOptions`].
+ pub fn override_pty_config(&self, pty_config: &mut PtyConfig) {
+ if let Some(working_directory) = &self.working_directory {
+ if working_directory.is_dir() {
+ pty_config.working_directory = Some(working_directory.to_owned());
+ } else {
+ error!("Invalid working directory: {:?}", working_directory);
+ }
+ }
+
+ if let Some(command) = self.command() {
+ pty_config.shell = Some(command);
+ }
+
+ pty_config.hold |= self.hold;
+ }
}
impl From<TerminalOptions> for PtyConfig {
fn from(mut options: TerminalOptions) -> Self {
- let working_directory = options.working_directory.take();
- let shell = options.command();
- let hold = options.hold;
- PtyConfig { shell, working_directory, hold }
+ PtyConfig {
+ working_directory: options.working_directory.take(),
+ shell: options.command(),
+ hold: options.hold,
+ }
}
}