diff options
Diffstat (limited to 'vendor/rustc_tools_util')
-rw-r--r-- | vendor/rustc_tools_util/.cargo-checksum.json | 1 | ||||
-rw-r--r-- | vendor/rustc_tools_util/Cargo.toml | 25 | ||||
-rw-r--r-- | vendor/rustc_tools_util/README.md | 62 | ||||
-rw-r--r-- | vendor/rustc_tools_util/src/lib.rs | 158 |
4 files changed, 0 insertions, 246 deletions
diff --git a/vendor/rustc_tools_util/.cargo-checksum.json b/vendor/rustc_tools_util/.cargo-checksum.json deleted file mode 100644 index dfdd70670..000000000 --- a/vendor/rustc_tools_util/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"Cargo.toml":"0b7a46457c09509e3c8b88aa27cb5988a6f944bc9e5491900220d0db2de88b16","README.md":"2a9e75d2e1fac7c92792fc7cef4a571c8fb86f8c99ba5dbd150ad08304757668","src/lib.rs":"9898dbb5d957bd7b13939db6c1181abcf7b1ae1c2fb9b26f6eaa229c211f6580"},"package":"b725dadae9fabc488df69a287f5a99c5eaf5d10853842a8a3dfac52476f544ee"}
\ No newline at end of file diff --git a/vendor/rustc_tools_util/Cargo.toml b/vendor/rustc_tools_util/Cargo.toml deleted file mode 100644 index d3ec288f0..000000000 --- a/vendor/rustc_tools_util/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies -# -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) - -[package] -edition = "2018" -name = "rustc_tools_util" -version = "0.2.0" -authors = ["Matthias Krüger <matthias.krueger@famsik.de>"] -description = "small helper to generate version information for git packages" -readme = "README.md" -keywords = ["rustc", "tool", "git", "version", "hash"] -categories = ["development-tools"] -license = "MIT/Apache-2.0" -repository = "https://github.com/rust-lang/rust-clippy" - -[dependencies] diff --git a/vendor/rustc_tools_util/README.md b/vendor/rustc_tools_util/README.md deleted file mode 100644 index 18341ca2f..000000000 --- a/vendor/rustc_tools_util/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# rustc_tools_util - -A small tool to help you generate version information -for packages installed from a git repo - -## Usage - -Add a `build.rs` file to your repo and list it in `Cargo.toml` -```` -build = "build.rs" -```` - -List rustc_tools_util as regular AND build dependency. -```` -[dependencies] -rustc_tools_util = "0.1" - -[build-dependencies] -rustc_tools_util = "0.1" -```` - -In `build.rs`, generate the data in your `main()` -````rust -fn main() { - println!( - "cargo:rustc-env=GIT_HASH={}", - rustc_tools_util::get_commit_hash().unwrap_or_default() - ); - println!( - "cargo:rustc-env=COMMIT_DATE={}", - rustc_tools_util::get_commit_date().unwrap_or_default() - ); - println!( - "cargo:rustc-env=RUSTC_RELEASE_CHANNEL={}", - rustc_tools_util::get_channel().unwrap_or_default() - ); -} - -```` - -Use the version information in your main.rs -````rust -use rustc_tools_util::*; - -fn show_version() { - let version_info = rustc_tools_util::get_version_info!(); - println!("{}", version_info); -} -```` -This gives the following output in clippy: -`clippy 0.0.212 (a416c5e 2018-12-14)` - - -## License - -Copyright 2014-2019 The Rust Project Developers - -Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -<LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -option. All files in the project carrying such notice may not be -copied, modified, or distributed except according to those terms. diff --git a/vendor/rustc_tools_util/src/lib.rs b/vendor/rustc_tools_util/src/lib.rs deleted file mode 100644 index ec3b69219..000000000 --- a/vendor/rustc_tools_util/src/lib.rs +++ /dev/null @@ -1,158 +0,0 @@ -use std::env; - -#[macro_export] -macro_rules! get_version_info { - () => {{ - let major = env!("CARGO_PKG_VERSION_MAJOR").parse::<u8>().unwrap(); - let minor = env!("CARGO_PKG_VERSION_MINOR").parse::<u8>().unwrap(); - let patch = env!("CARGO_PKG_VERSION_PATCH").parse::<u16>().unwrap(); - let crate_name = String::from(env!("CARGO_PKG_NAME")); - - let host_compiler = option_env!("RUSTC_RELEASE_CHANNEL").map(str::to_string); - let commit_hash = option_env!("GIT_HASH").map(str::to_string); - let commit_date = option_env!("COMMIT_DATE").map(str::to_string); - - VersionInfo { - major, - minor, - patch, - host_compiler, - commit_hash, - commit_date, - crate_name, - } - }}; -} - -// some code taken and adapted from RLS and cargo -pub struct VersionInfo { - pub major: u8, - pub minor: u8, - pub patch: u16, - pub host_compiler: Option<String>, - pub commit_hash: Option<String>, - pub commit_date: Option<String>, - pub crate_name: String, -} - -impl std::fmt::Display for VersionInfo { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let hash = self.commit_hash.clone().unwrap_or_default(); - let hash_trimmed = hash.trim(); - - let date = self.commit_date.clone().unwrap_or_default(); - let date_trimmed = date.trim(); - - if (hash_trimmed.len() + date_trimmed.len()) > 0 { - write!( - f, - "{} {}.{}.{} ({} {})", - self.crate_name, self.major, self.minor, self.patch, hash_trimmed, date_trimmed, - )?; - } else { - write!(f, "{} {}.{}.{}", self.crate_name, self.major, self.minor, self.patch)?; - } - - Ok(()) - } -} - -impl std::fmt::Debug for VersionInfo { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "VersionInfo {{ crate_name: \"{}\", major: {}, minor: {}, patch: {}", - self.crate_name, self.major, self.minor, self.patch, - )?; - if self.commit_hash.is_some() { - write!( - f, - ", commit_hash: \"{}\", commit_date: \"{}\" }}", - self.commit_hash.clone().unwrap_or_default().trim(), - self.commit_date.clone().unwrap_or_default().trim() - )?; - } else { - write!(f, " }}")?; - } - - Ok(()) - } -} - -pub fn get_commit_hash() -> Option<String> { - std::process::Command::new("git") - .args(&["rev-parse", "--short", "HEAD"]) - .output() - .ok() - .and_then(|r| String::from_utf8(r.stdout).ok()) -} - -pub fn get_commit_date() -> Option<String> { - std::process::Command::new("git") - .args(&["log", "-1", "--date=short", "--pretty=format:%cd"]) - .output() - .ok() - .and_then(|r| String::from_utf8(r.stdout).ok()) -} - -pub fn get_channel() -> Option<String> { - match env::var("CFG_RELEASE_CHANNEL") { - Ok(channel) => Some(channel), - Err(_) => { - // if that failed, try to ask rustc -V, do some parsing and find out - match std::process::Command::new("rustc") - .arg("-V") - .output() - .ok() - .and_then(|r| String::from_utf8(r.stdout).ok()) - { - Some(rustc_output) => { - if rustc_output.contains("beta") { - Some(String::from("beta")) - } else if rustc_output.contains("stable") { - Some(String::from("stable")) - } else { - // default to nightly if we fail to parse - Some(String::from("nightly")) - } - }, - // default to nightly - None => Some(String::from("nightly")), - } - }, - } -} - -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn test_struct_local() { - let vi = get_version_info!(); - assert_eq!(vi.major, 0); - assert_eq!(vi.minor, 2); - assert_eq!(vi.patch, 0); - assert_eq!(vi.crate_name, "rustc_tools_util"); - // hard to make positive tests for these since they will always change - assert!(vi.commit_hash.is_none()); - assert!(vi.commit_date.is_none()); - } - - #[test] - fn test_display_local() { - let vi = get_version_info!(); - assert_eq!(vi.to_string(), "rustc_tools_util 0.2.0"); - } - - #[test] - fn test_debug_local() { - let vi = get_version_info!(); - let s = format!("{:?}", vi); - assert_eq!( - s, - "VersionInfo { crate_name: \"rustc_tools_util\", major: 0, minor: 2, patch: 0 }" - ); - } - -} |