Possibilité d'exécuter des commandes !
This commit is contained in:
parent
9022d04ca9
commit
2e45fabc68
2 changed files with 25 additions and 1 deletions
23
src/job.rs
Normal file
23
src/job.rs
Normal file
|
@ -0,0 +1,23 @@
|
|||
use std::process::{
|
||||
Command,
|
||||
ExitStatus,
|
||||
};
|
||||
use std::io::{
|
||||
Result,
|
||||
Error,
|
||||
ErrorKind,
|
||||
};
|
||||
|
||||
pub fn execute(mut argv: Vec<String>) -> Result<ExitStatus> {
|
||||
let mut command = Command::new(&argv[0]);
|
||||
argv.remove(0);
|
||||
command.args(argv);
|
||||
|
||||
let child = command.spawn();
|
||||
|
||||
if child.is_ok() {
|
||||
child.unwrap().wait()
|
||||
} else {
|
||||
Err(Error::new(ErrorKind::Other, "failed to spawn child process"))
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ use std::process::exit;
|
|||
mod input;
|
||||
mod output;
|
||||
mod parser;
|
||||
mod job;
|
||||
|
||||
fn main() {
|
||||
let mut buffer = input::Buffer::new();
|
||||
|
@ -15,7 +16,7 @@ fn main() {
|
|||
|
||||
argv = buffer.parse();
|
||||
if argv.is_some() {
|
||||
println!("{:?}", argv.unwrap());
|
||||
let _ = job::execute(argv.unwrap());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue