diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-10-02 14:50:18 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-10-02 14:50:18 -0700 |
| commit | dd0c786d338ef2073848e17b99c53ffdae62eea7 (patch) | |
| tree | 5007ff9138fb9ef7f41393950dd6205e907aa0a8 /src | |
| parent | 51820b610e6147b737bbb8a6c9de810aea839148 (diff) | |
| parent | 1dfb23f4cf5c8a7224cf9d71a0d0b74f22ad252d (diff) | |
| download | rust-dd0c786d338ef2073848e17b99c53ffdae62eea7.tar.gz rust-dd0c786d338ef2073848e17b99c53ffdae62eea7.zip | |
rollup merge of #17682 : nodakai/librustc-handy-version
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/driver/mod.rs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/librustc/driver/mod.rs b/src/librustc/driver/mod.rs index 88059dc814f..cb671d6e85f 100644 --- a/src/librustc/driver/mod.rs +++ b/src/librustc/driver/mod.rs @@ -125,6 +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<String> { @@ -134,13 +149,14 @@ pub fn version(binary: &str, matches: &getopts::Matches) -> Option<String> { 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 } |
