Started to implement CmdOutput - keep going...
This commit is contained in:
parent
4c64bb8038
commit
488c9c6e0a
23
src/lib.rs
23
src/lib.rs
@ -69,15 +69,34 @@ pub mod shell {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process_line(input: &str) -> String {
|
struct CmdOutput {
|
||||||
|
outp: String,
|
||||||
|
rc: i16,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CmdOutput {
|
||||||
|
fn from_values(output: String, rc: i16) -> CmdOutput {
|
||||||
|
let myoutp = CmdOutput {
|
||||||
|
outp: output,
|
||||||
|
rc: rc,
|
||||||
|
}
|
||||||
|
return myoutp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn process_line(input: &str) -> Result<CmdOutput, CmdOutput> {
|
||||||
let mut commands = input.trim().split("|").peekable();
|
let mut commands = input.trim().split("|").peekable();
|
||||||
let mut previous_command = None;
|
let mut previous_command = None;
|
||||||
let mut resultat = String::new();
|
let mut resultat = String::new();
|
||||||
|
|
||||||
|
let mut outp = CmdOutput::new_empty();
|
||||||
|
|
||||||
while let Some(command) = commands.next() {
|
while let Some(command) = commands.next() {
|
||||||
let parts = match shell_words::split(&command.trim()) {
|
let parts = match shell_words::split(&command.trim()) {
|
||||||
Ok(w) => w,
|
Ok(w) => w,
|
||||||
Err(e) => { return format!("Error parsing the command : {:?}", e); },
|
Err(e) => {
|
||||||
|
return Err(CmdOutput::from_values(format!("Could not parse command {:?}", e), -1));
|
||||||
|
},
|
||||||
};
|
};
|
||||||
let command = parts[0].as_str();
|
let command = parts[0].as_str();
|
||||||
let args = Vec::from(&parts[1..]);
|
let args = Vec::from(&parts[1..]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user