about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml1
-rw-r--r--clippy_dummy/Cargo.toml17
-rw-r--r--clippy_dummy/PUBLISH.md4
-rw-r--r--clippy_dummy/build.rs42
-rw-r--r--clippy_dummy/crates-readme.md9
-rw-r--r--clippy_dummy/src/main.rs3
6 files changed, 76 insertions, 0 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 80ff21764a5..d765e09deef 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,6 +16,7 @@ keywords = ["clippy", "lint", "plugin"]
 categories = ["development-tools", "development-tools::cargo-plugins"]
 build = "build.rs"
 edition = "2018"
+publish = false
 
 [badges]
 travis-ci = { repository = "rust-lang-nursery/rust-clippy" }
diff --git a/clippy_dummy/Cargo.toml b/clippy_dummy/Cargo.toml
new file mode 100644
index 00000000000..b9e3aa3bcdc
--- /dev/null
+++ b/clippy_dummy/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "clippy_dummy" # rename to clippy before publishing
+version = "0.0.301"
+authors = ["Manish Goregaokar <manishsmail@gmail.com>"]
+edition = "2018"
+readme = "crates-readme.md"
+description = "A bunch of helpful lints to avoid common pitfalls in Rust."
+build = 'build.rs'
+
+repository = "https://github.com/rust-lang-nursery/rust-clippy"
+
+license = "MPL-2.0"
+keywords = ["clippy", "lint", "plugin"]
+categories = ["development-tools", "development-tools::cargo-plugins"]
+
+[build-dependencies]
+term = "0.5.1"
diff --git a/clippy_dummy/PUBLISH.md b/clippy_dummy/PUBLISH.md
new file mode 100644
index 00000000000..535f11bd2ee
--- /dev/null
+++ b/clippy_dummy/PUBLISH.md
@@ -0,0 +1,4 @@
+This is a dummy crate to publish to crates.io. It primarily exists to ensure that folks trying to install clippy from crates.io get redirected to the `rustup` technique.
+
+Before publishing, be sure to rename `clippy_dummy` to `clippy` in `Cargo.toml`, it has a different name to avoid workspace issues.
+ 
\ No newline at end of file
diff --git a/clippy_dummy/build.rs b/clippy_dummy/build.rs
new file mode 100644
index 00000000000..97902feff86
--- /dev/null
+++ b/clippy_dummy/build.rs
@@ -0,0 +1,42 @@
+extern crate term;
+
+fn main() {
+    if let Err(_) = foo() {
+        eprintln!("error: Clippy is no longer available via crates.io\n");
+        eprintln!("help: please run `rustup component add clippy-preview` instead");
+    }
+    std::process::exit(1);
+}
+
+fn foo() -> Result<(), ()> {
+    let mut t = term::stderr().ok_or(())?;
+
+    t.attr(term::Attr::Bold).map_err(|_| ())?;
+    t.fg(term::color::RED).map_err(|_| ())?;
+    write!(t, "\nerror: ").map_err(|_| ())?;
+
+
+    t.reset().map_err(|_| ())?;
+    t.fg(term::color::WHITE).map_err(|_| ())?;
+    writeln!(t, "Clippy is no longer available via crates.io\n").map_err(|_| ())?;
+
+
+    t.attr(term::Attr::Bold).map_err(|_| ())?;
+    t.fg(term::color::GREEN).map_err(|_| ())?;
+    write!(t, "help: ").map_err(|_| ())?;
+
+
+    t.reset().map_err(|_| ())?;
+    t.fg(term::color::WHITE).map_err(|_| ())?;
+    write!(t, "please run `").map_err(|_| ())?;
+
+    t.attr(term::Attr::Bold).map_err(|_| ())?;
+    write!(t, "rustup component add clippy-preview").map_err(|_| ())?;
+
+    t.reset().map_err(|_| ())?;
+    t.fg(term::color::WHITE).map_err(|_| ())?;
+    writeln!(t, "` instead").map_err(|_| ())?;
+
+    t.reset().map_err(|_| ())?;
+    Ok(())
+}
\ No newline at end of file
diff --git a/clippy_dummy/crates-readme.md b/clippy_dummy/crates-readme.md
new file mode 100644
index 00000000000..0035073549c
--- /dev/null
+++ b/clippy_dummy/crates-readme.md
@@ -0,0 +1,9 @@
+Installing clippy via crates.io is deprecated. Please use the following:
+
+```terminal
+rustup component add clippy-preview
+```
+
+on a Rust version 1.29 or later. You may need to run `rustup self update` if it complains about a missing clippy binary.
+
+See [the homepage](https://github.com/rust-lang-nursery/rust-clippy/#clippy) for more information
\ No newline at end of file
diff --git a/clippy_dummy/src/main.rs b/clippy_dummy/src/main.rs
new file mode 100644
index 00000000000..a118834f1fd
--- /dev/null
+++ b/clippy_dummy/src/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+    panic!("This shouldn't even compile")
+}