From def4a2627db70e8b25022822976b3b178d082440 Mon Sep 17 00:00:00 2001 From: Michal 'vorner' Vaner Date: Wed, 11 Oct 2017 20:50:58 +0200 Subject: [PATCH] Include a conditional update script --- README.md | 9 +++++++++ rust-update | 31 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 rust-update diff --git a/README.md b/README.md index 8ef61a9df0f..755c88840e8 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,15 @@ transparently: #[cfg_attr(feature = "cargo-clippy", allow(needless_lifetimes))] ``` +## Updating rustc + +Sometimes, rustc moves forward without clippy catching up. Therefore updating +rustc may leave clippy a non-functional state until we fix the resulting +breakage. + +You can use the [rust-update](rust-update) script to update rustc only if +clippy would also update correctly. + ## License Licensed under [MPL](https://www.mozilla.org/MPL/2.0/). diff --git a/rust-update b/rust-update new file mode 100755 index 00000000000..a987bbe94ff --- /dev/null +++ b/rust-update @@ -0,0 +1,31 @@ +#!/bin/sh + +if [ "$1" = '-h' ] ; then + echo 'Updates rustc & clippy' + echo 'It first checks if clippy would compile at currentl nightly and if so, it updates.' + echo 'Options:' + echo '-h: This help message' + echo '-f: Skips the check and just updates' + exit +fi + +set -ex + +renice -n 10 -p $$ + +export CARGO_INCREMENTAL=0 +export RUSTFLAGS='-C target-cpu=native' + +try_out() { + export RUSTUP_HOME=$HOME/.rustup-attempt + test -d $RUSTUP_HOME || (rustup toolchain add nightly && rustup default nightly) + rustup update + cargo +nightly install --force clippy + unset RUSTUP_HOME + export RUSTUP_HOME +} + +[ "$1" = '-f' ] || try_out + +rustup update +cargo +nightly install --force clippy