|
@ -1,12 +1,11 @@ |
|
|
use crossbeam_channel::{select, Receiver};
|
|
|
|
|
|
use std::io::ErrorKind;
|
|
|
|
|
|
use std::process::{Command, ExitStatus};
|
|
|
|
|
|
use std::{io, thread};
|
|
|
|
|
|
|
|
|
|
|
|
use crate::builtins::{execute_builtin, is_builtin, BuiltinConfig};
|
|
|
use crate::builtins::{execute_builtin, is_builtin, BuiltinConfig};
|
|
|
use crate::error::ShellError;
|
|
|
use crate::error::ShellError;
|
|
|
use crate::parse::parse_line;
|
|
|
use crate::parse::parse_line;
|
|
|
use crate::preprocess::preprocess;
|
|
|
use crate::preprocess::preprocess;
|
|
|
|
|
|
use crossbeam_channel::{select, Receiver};
|
|
|
|
|
|
use std::io::ErrorKind;
|
|
|
|
|
|
use std::process::{Command, ExitStatus};
|
|
|
|
|
|
use std::{io, thread};
|
|
|
|
|
|
|
|
|
/// This function is not directly in main.rs because it might be called by other function too (eg.
|
|
|
/// This function is not directly in main.rs because it might be called by other function too (eg.
|
|
|
/// when piping commands).
|
|
|
/// when piping commands).
|
|
|