diff --git a/src/main.rs b/src/main.rs index 8fb6c765aee886a95812acfbdb61888e8e81d344..6e4cd7d3a9b4f524835e95fc52c78e8ba46d0763 100644 --- a/src/main.rs +++ b/src/main.rs @@ -26,6 +26,7 @@ fn main() { let mut args = env::args().skip(1); let mut script_path = None; let mut key_bindings = None; + let mut force_interactive = false; while let Some(arg) = args.next() { match arg.as_str() { "-o" => match args.next().as_ref().map(|s| s.as_str()) { @@ -51,6 +52,7 @@ fn main() { println!("{}", MAN_ION); return; } + "-i" | "--interactive" => force_interactive = true, _ => { script_path = Some(arg); break; @@ -75,7 +77,7 @@ fn main() { shell.execute_script(command.as_bytes()); } else if let Some(path) = script_path { shell.execute_file(&path.as_str()); - } else if stdin_is_a_tty { + } else if stdin_is_a_tty || force_interactive { let mut interactive = InteractiveBinary::new(shell); if let Some(key_bindings) = key_bindings { interactive.set_keybindings(key_bindings);