From: Alex Crichton Date: Thu, 2 Oct 2014 21:50:18 +0000 (-0700) Subject: rollup merge of #17682 : nodakai/librustc-handy-version X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=dd0c786d338ef2073848e17b99c53ffdae62eea7;hp=-c;p=rust.git rollup merge of #17682 : nodakai/librustc-handy-version --- dd0c786d338ef2073848e17b99c53ffdae62eea7 diff --combined src/librustc/driver/mod.rs index 88059dc814f,95ff2703be8..cb671d6e85f --- a/src/librustc/driver/mod.rs +++ b/src/librustc/driver/mod.rs @@@ -29,13 -29,16 +29,13 @@@ use syntax::diagnostics use getopts; - pub mod driver; pub mod session; pub mod config; pub mod pretty; - -pub fn main_args(args: &[String]) -> int { - let owned_args = args.to_vec(); - monitor(proc() run_compiler(owned_args.as_slice())); +pub fn run(args: Vec) -> int { + monitor(proc() run_compiler(args.as_slice())); 0 } @@@ -125,6 -128,21 +125,21 @@@ fn run_compiler(args: &[String]) driver::compile_input(sess, cfg, &input, &odir, &ofile, None); } + /// Returns a version string such as "0.12.0-dev". + pub fn release_str() -> Option<&'static str> { + option_env!("CFG_RELEASE") + } + + /// Returns the full SHA1 hash of HEAD of the Git repo from which rustc was built. + pub fn commit_hash_str() -> Option<&'static str> { + option_env!("CFG_VER_HASH") + } + + /// Returns the "commit date" of HEAD of the Git repo from which rustc was built as a static string. + pub fn commit_date_str() -> Option<&'static str> { + option_env!("CFG_VER_DATE") + } + /// Prints version information and returns None on success or an error /// message on failure. pub fn version(binary: &str, matches: &getopts::Matches) -> Option { @@@ -134,13 -152,14 +149,14 @@@ Some(s) => return Some(format!("Unrecognized argument: {}", s)) }; - println!("{} {}", binary, env!("CFG_VERSION")); + println!("{} {}", binary, option_env!("CFG_VERSION").unwrap_or("unknown version")); if verbose { + fn unw(x: Option<&str>) -> &str { x.unwrap_or("unknown") } println!("binary: {}", binary); - println!("commit-hash: {}", option_env!("CFG_VER_HASH").unwrap_or("unknown")); - println!("commit-date: {}", option_env!("CFG_VER_DATE").unwrap_or("unknown")); + println!("commit-hash: {}", unw(commit_hash_str())); + println!("commit-date: {}", unw(commit_date_str())); println!("host: {}", driver::host_triple()); - println!("release: {}", env!("CFG_RELEASE")); + println!("release: {}", unw(release_str())); } None }