1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
extern crate clap; extern crate nom; mod cli; mod options; mod status_code; mod status_constraints; use options::{rerun, stall}; use status_code::get_status_code; use status_constraints::StatusCode; use std::process; pub use cli::Opts; pub fn run(opts: &Opts) -> StatusCode { stall::handle(&opts, || { rerun::handle(&opts, || { get_status_code( &process::Command::new(&opts.command) .args(&opts.args) .status() .unwrap_or_else(|err| { eprintln!("Failed to run '{}'", opts.command); eprintln!("{}", err); process::exit(1) }), ) }) }) }