use precc_core::pipeline::Pipeline;
use std::os::unix::process::CommandExt;
use std::process::Command;
const REAL_SHELL: &str = "/bin/bash";
fn main() {
let mut args: Vec<String> = std::env::args().skip(1).collect();
if args.len() >= 2 && args[0] == "-c" {
let original = args[1].clone();
let mut pipeline = Pipeline::new(original.clone());
pipeline.run();
if pipeline.modified() {
eprintln!("[{}] rewrote: {}", pipeline.reason(), pipeline.command);
args[1] = pipeline.command;
}
}
let err = Command::new(REAL_SHELL).args(&args).exec();
eprintln!("precc-shell: failed to exec {REAL_SHELL}: {err}");
std::process::exit(127);
}