blob: b5a2c8ae346ea66aadd49cce3aa04fcdad03b6a6 [file] [log] [blame] [edit]
use std::ffi::OsString;
use std::path::PathBuf;
use std::process::{self, Command};
use std::{env, fs};
fn main() {
let args: Vec<OsString> = env::args_os().collect();
let log_path = env::var_os("BUILDER_LOG").map(PathBuf::from).expect("BUILDER_LOG must be set");
let real_rustc = env::var_os("REAL_RUSTC").expect("REAL_RUSTC must be set");
let log_contents =
args.iter().skip(1).map(|arg| arg.to_string_lossy()).collect::<Vec<_>>().join("\n");
fs::write(&log_path, log_contents).expect("failed to write builder log");
let status = Command::new(real_rustc)
.args(args.iter().skip(1))
.status()
.expect("failed to invoke real rustc");
if !status.success() {
process::exit(status.code().unwrap_or(1));
}
}