From 621e1d4d6e412d2a2305a4b2635f50ca11e3f24d Mon Sep 17 00:00:00 2001 From: Caleb Jasik Date: Thu, 18 Oct 2018 01:22:38 -0500 Subject: [PATCH 001/140] Adding Scoop to README.md (#79) I just updated the README.md to reflect the new support for the scoop package manager --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f52c16f6..ec2c139e 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Just run `topgrade`. It will run the following steps: * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * *Windows*: Upgrade Powershell modules * *Windows*: Upgrade all [Chocolatey](https://chocolatey.org/) packages +* *Windows*: Upgrade all [Scoop](https://scoop.sh) packages * Check if the following paths are tracked by Git. If so, pull them: * ~/.emacs.d (Should work whether you use [Spacemacs](http://spacemacs.org/) or a custom configuration) * ~/.zshrc From 78396fc438703f4ed3b9deabde4ad5cb97d9afcd Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 21 Oct 2018 13:05:49 +0300 Subject: [PATCH 002/140] Nix package manager --- README.md | 1 + src/main.rs | 5 +++++ src/unix.rs | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/README.md b/README.md index ec2c139e..cdb49002 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Just run `topgrade`. It will run the following steps: * *Debian/Ubuntu*: Run `apt update && apt dist-upgrade` * *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew +* *Unix*: Run `nix upgrade-nix && nix --upgrade`. * *Windows*: Upgrade Powershell modules * *Windows*: Upgrade all [Chocolatey](https://chocolatey.org/) packages * *Windows*: Upgrade all [Scoop](https://scoop.sh) packages diff --git a/src/main.rs b/src/main.rs index 6a47c33c..6760b94b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -186,6 +186,11 @@ fn run() -> Result<(), Error> { |terminal| unix::run_homebrew(terminal, opt.dry_run), &mut execution_context, )?); + #[cfg(unix)] + report.push_result(execute( + |terminal| unix::run_nix(terminal, opt.dry_run), + &mut execution_context, + )?); if !opt.no_emacs { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); diff --git a/src/unix.rs b/src/unix.rs index c86f5158..fa25e969 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -67,3 +67,30 @@ pub fn run_homebrew(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static None } + +#[must_use] +pub fn run_nix(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + if let Some(nix) = which("nix") { + if let Some(nix_env) = which("nix-env") { + terminal.print_separator("Nix"); + + let inner = || -> Result<(), Error> { + Executor::new(&nix, dry_run) + .arg("upgrade-nix") + .spawn()? + .wait()? + .check()?; + Executor::new(&nix_env, dry_run) + .arg("--upgrade") + .spawn()? + .wait()? + .check()?; + Ok(()) + }; + + return Some(("Nix", inner().is_ok())); + } + } + + None +} From ba7192c21da72ce5c778acb5ffb69e7b8dd7934e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 21 Oct 2018 15:08:36 +0300 Subject: [PATCH 003/140] Gentoo support --- README.md | 1 + src/linux.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/README.md b/README.md index cdb49002..8defe9ca 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Just run `topgrade`. It will run the following steps: * *CentOS/RHEL*: Run `yum upgrade` * *Fedora* - Run `dnf upgrade` * *Debian/Ubuntu*: Run `apt update && apt dist-upgrade` + * *Gentoo*: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` * *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * *Unix*: Run `nix upgrade-nix && nix --upgrade`. diff --git a/src/linux.rs b/src/linux.rs index 5fb267f3..faad97fa 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -13,6 +13,7 @@ pub enum Distribution { Fedora, Debian, Ubuntu, + Gentoo, } #[derive(Debug, Fail)] @@ -47,6 +48,10 @@ impl Distribution { return Ok(Distribution::Debian); } + if PathBuf::from("/etc/gentoo-release").exists() { + return Ok(Distribution::Gentoo); + } + Err(UnknownLinuxDistribution.into()) } @@ -64,6 +69,7 @@ impl Distribution { Distribution::CentOS => upgrade_redhat(&sudo, terminal, dry_run), Distribution::Fedora => upgrade_fedora(&sudo, terminal, dry_run), Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, terminal, dry_run), + Distribution::Gentoo => upgrade_gentoo(&sudo, terminal, dry_run), }; Some(("System update", success.is_ok())) @@ -151,6 +157,42 @@ fn upgrade_fedora(sudo: &Option, terminal: &mut Terminal, dry_run: bool Ok(()) } +fn upgrade_gentoo(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { + if let Some(sudo) = &sudo { + if let Some(layman) = which("layman") { + Executor::new(&sudo, dry_run) + .arg(layman) + .args(&["-s", "ALL"]) + .spawn()? + .wait()? + .check()?; + } + + println!("Syncing portage"); + Executor::new(&sudo, dry_run) + .arg("/usr/bin/emerge") + .args(&["-q", "--sync"]) + .spawn()? + .wait()? + .check()?; + + if let Some(eix_update) = which("eix-update") { + Executor::new(&sudo, dry_run).arg(eix_update).spawn()?.wait()?.check()?; + } + + Executor::new(&sudo, dry_run) + .arg("/usr/bin/emerge") + .args(&["-uDNa", "world"]) + .spawn()? + .wait()? + .check()?; + } else { + terminal.print_warning("No sudo detected. Skipping system upgrade"); + } + + Ok(()) +} + fn upgrade_debian(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) From 7e9e7b8756b5fd75f6b036a3a34a09d021574bf7 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 21 Oct 2018 15:16:14 +0300 Subject: [PATCH 004/140] Fix etc-update reporting --- src/linux.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linux.rs b/src/linux.rs index faad97fa..12690d48 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -348,7 +348,7 @@ pub fn run_etc_update(sudo: &Option, terminal: &mut Terminal, dry_run: Ok(()) }().is_ok(); - return Some(("snap", success)); + return Some(("etc-update", success)); } } From b104fec7c4b65a5aaca1cc72700b7f81c0397b19 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 21 Oct 2018 15:29:05 +0300 Subject: [PATCH 005/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 267b9263..de4625fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -535,7 +535,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "0.16.0" +version = "0.17.0" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index f5dee46b..377e27d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENCE" repository = "https://github.com/r-darwish/topgrade" -version = "0.16.0" +version = "0.17.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From c0942e12a3850d6d8e917dfd62662eb1ca8d6a3f Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 29 Oct 2018 14:18:47 +0200 Subject: [PATCH 006/140] Forbid clippy warnings --- ci/script.sh | 2 +- src/main.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/script.sh b/ci/script.sh index ee3383d1..8e594ac0 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -5,7 +5,7 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { cargo fmt --all -- --check - cargo clippy --all-targets --all-features -- -D warnings + cargo clippy --all-targets --all-features cross check --target $TARGET cross check --target $TARGET --release diff --git a/src/main.rs b/src/main.rs index 6760b94b..c09841de 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +#![cfg_attr(feature = "cargo-clippy", deny(clippy::all))] + extern crate directories; extern crate failure; extern crate which; From d081991edcdd854dee5bf83a1a27aedd1e704817 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 29 Oct 2018 14:32:33 +0200 Subject: [PATCH 007/140] Cargo fmt --- src/generic.rs | 16 ++++++---------- src/main.rs | 16 ++++++---------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/generic.rs b/src/generic.rs index 262dd87c..bf8ca54b 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -74,16 +74,12 @@ pub fn run_emacs(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) - } #[must_use] -#[cfg( - not( - any( - target_os = "freebsd", - target_os = "openbsd", - target_os = "netbsd", - target_os = "dragonfly" - ) - ) -)] +#[cfg(not(any( + target_os = "freebsd", + target_os = "openbsd", + target_os = "netbsd", + target_os = "dragonfly" +)))] pub fn run_apm(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(apm) = utils::which("apm") { terminal.print_separator("Atom Package Manager"); diff --git a/src/main.rs b/src/main.rs index c09841de..a079b72d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -288,16 +288,12 @@ fn run() -> Result<(), Error> { &mut execution_context, )?); - #[cfg( - not( - any( - target_os = "freebsd", - target_os = "openbsd", - target_os = "netbsd", - target_os = "dragonfly" - ) - ) - )] + #[cfg(not(any( + target_os = "freebsd", + target_os = "openbsd", + target_os = "netbsd", + target_os = "dragonfly" + )))] report.push_result(execute( |terminal| generic::run_apm(terminal, opt.dry_run), &mut execution_context, From 4c16a34053a1c3ca86239b3eb6a2cccc4d7ba5b7 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 29 Oct 2018 14:41:45 +0200 Subject: [PATCH 008/140] Revert "Forbid clippy warnings" This reverts commit c0942e12a3850d6d8e917dfd62662eb1ca8d6a3f. 1 | #![cfg_attr(feature = "cargo-clippy", deny(clippy::all))] | ^^^^^^^^^^^ error[E0658]: scoped lint `clippy::all` is experimental (see issue #44690) --- ci/script.sh | 2 +- src/main.rs | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ci/script.sh b/ci/script.sh index 8e594ac0..ee3383d1 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -5,7 +5,7 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { cargo fmt --all -- --check - cargo clippy --all-targets --all-features + cargo clippy --all-targets --all-features -- -D warnings cross check --target $TARGET cross check --target $TARGET --release diff --git a/src/main.rs b/src/main.rs index a079b72d..891c6155 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,3 @@ -#![cfg_attr(feature = "cargo-clippy", deny(clippy::all))] - extern crate directories; extern crate failure; extern crate which; From 036a86f593574f834f53df6fd361985ee056ea12 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 18 Oct 2018 16:05:27 +0300 Subject: [PATCH 009/140] Add Jetpack (fix #80) --- README.md | 1 + src/generic.rs | 20 ++++++++++++++++++++ src/main.rs | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/README.md b/README.md index 8defe9ca..50fa2af6 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ Just run `topgrade`. It will run the following steps: * Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update) * Upgrade Emacs packages (You'll get a better output if you have [Paradox](https://github.com/Malabarba/paradox) installed) * Upgrade [OCaml packages](https://opam.ocaml.org/) +* Upgrade [R globally installed packages](https://github.com/ankane/jetpack) * Upgrade Vim/Neovim packages. Works with the following plugin frameworks: * [NeoBundle](https://github.com/Shougo/neobundle.vim) * [Vundle](https://github.com/VundleVim/Vundle.vim) diff --git a/src/generic.rs b/src/generic.rs index bf8ca54b..4d46d412 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -124,6 +124,26 @@ pub fn run_rustup(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) None } +#[must_use] +pub fn run_jetpack(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + if let Some(jetpack) = utils::which("jetpack") { + terminal.print_separator("Jetpack"); + + let success = || -> Result<(), Error> { + Executor::new(&jetpack, dry_run) + .args(&["global", "update"]) + .spawn()? + .wait()? + .check()?; + Ok(()) + }().is_ok(); + + return Some(("Jetpack", success)); + } + + None +} + #[must_use] pub fn run_opam_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(opam) = utils::which("opam") { diff --git a/src/main.rs b/src/main.rs index 891c6155..2fef5c3a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -265,6 +265,10 @@ fn run() -> Result<(), Error> { |terminal| generic::run_opam_update(terminal, opt.dry_run), &mut execution_context, )?); + report.push_result(execute( + |terminal| generic::run_jetpack(terminal, opt.dry_run), + &mut execution_context, + )?); report.push_result(execute( |terminal| vim::upgrade_vim(&base_dirs, terminal, opt.dry_run), &mut execution_context, From e9d1ecc0db79df2319957dff0dce4dc70dfdd436 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 31 Oct 2018 12:56:32 +0200 Subject: [PATCH 010/140] Bump dependencies --- Cargo.lock | 143 +++++++++++++++++++++++++---------------------------- Cargo.toml | 16 +++--- 2 files changed, 74 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de4625fe..73a84820 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,9 +1,9 @@ [[package]] name = "aho-corasick" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -30,7 +30,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -125,29 +125,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -210,18 +210,18 @@ dependencies = [ [[package]] name = "log" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "memchr" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -233,7 +233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -282,7 +282,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -331,11 +331,11 @@ name = "regex" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -343,7 +343,7 @@ name = "regex-syntax" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -361,7 +361,7 @@ dependencies = [ [[package]] name = "same-file" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -387,17 +387,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.9 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -425,51 +425,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.9 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.14.9" +version = "0.15.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn" -version = "0.15.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "synstructure" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -530,7 +520,7 @@ name = "toml" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -540,25 +530,25 @@ dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "ucd-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -581,7 +571,7 @@ dependencies = [ [[package]] name = "utf8-ranges" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -601,10 +591,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "walkdir" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -614,7 +604,7 @@ name = "which" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -665,22 +655,22 @@ dependencies = [ ] [metadata] -"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" +"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" -"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" +"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f84dec9bc083ce2503908cd305af98bd363da6f54bf8d4bf0ac14ee749ad5d1" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd48adf136733979b49e15bc3b4c43cc0d3c85ece7bd08e6daa414c6fcb13e6" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" -"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" -"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" +"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" +"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" @@ -689,15 +679,15 @@ dependencies = [ "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" "checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" -"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" -"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" +"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" +"checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" @@ -707,21 +697,20 @@ dependencies = [ "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10f7794e2fda7f594866840e95f5c5962e886e228e68b6505885811a94dd728c" +"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" -"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe" +"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" +"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ca85f2c9a5a1e2d5ac686fc0be48e40f8ad803f5bbe31f692ff71eb2dd8aad45" -"checksum structopt-derive 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "1383e5db585da799a5c4acc496c5c868e18bf82e658c00c75cc91038fa26b55f" -"checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b10ee269228fb723234fce98e9aac0eaed2bd5f1ad2f6930e8d5b93f04445a1a" -"checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" +"checksum structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d77af7242f18c40fd19cb270985930f239ee1646cfb482050bbae9da1d18743b" +"checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311" +"checksum syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)" = "3391038ebc3e4ab24eb028cb0ef2f2dc4ba0cbf72ee895ed6a6fad730640b5bc" +"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" @@ -729,15 +718,15 @@ dependencies = [ "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65" -"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" +"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4" +"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "af464bc7be7b785c7ac72e266a6b67c4c9070155606f51655a650a6686204e35" +"checksum walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0ffb549f212c31e19f3667c55a7f515b983a84aef10fd0a4d1f9c125425115f3" "checksum which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49c4f580e93079b70ac522e7bdebbe1568c8afa7d8d05ee534ee737ca37d2f51" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" diff --git a/Cargo.toml b/Cargo.toml index 377e27d4..4403065c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,23 +9,23 @@ exclude = ["doc/screenshot.gif"] [dependencies] directories = "1.0.2" -failure = "0.1.2" -failure_derive = "0.1.2" -serde = "1.0.79" -serde_derive = "1.0.79" +failure = "0.1.3" +failure_derive = "0.1.3" +serde = "1.0.80" +serde_derive = "1.0.80" toml = "0.4.8" which = "2.0.0" shellexpand = "1.0.0" -structopt = "0.2.10" -log = "0.4.5" +structopt = "0.2.12" +log = "0.4.6" env_logger = "0.5.13" term_size = "0.3.1" termcolor = "1.0.4" -walkdir = "2.2.5" +walkdir = "2.2.6" console = "0.6.2" [target.'cfg(unix)'.dependencies] -nix = "0.11" +nix = "0.11.0" lazy_static = "1.1.0" [profile.release] From 17d1af8ba07db5757fdca69af70b6ad0a60e5964 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 31 Oct 2018 13:01:57 +0200 Subject: [PATCH 011/140] pipx (fix #76) --- README.md | 1 + src/generic.rs | 20 ++++++++++++++++++++ src/main.rs | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/README.md b/README.md index 50fa2af6..5cfabcd0 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ Just run `topgrade`. It will run the following steps: * Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update) * Upgrade Emacs packages (You'll get a better output if you have [Paradox](https://github.com/Malabarba/paradox) installed) * Upgrade [OCaml packages](https://opam.ocaml.org/) +* Upgrade Python packages installed using [pipx](https://github.com/cs01/pipx) * Upgrade [R globally installed packages](https://github.com/ankane/jetpack) * Upgrade Vim/Neovim packages. Works with the following plugin frameworks: * [NeoBundle](https://github.com/Shougo/neobundle.vim) diff --git a/src/generic.rs b/src/generic.rs index 4d46d412..158b2fb7 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -161,6 +161,26 @@ pub fn run_opam_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'stat None } +#[must_use] +pub fn run_pipx_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + if let Some(pipx) = utils::which("pipx") { + terminal.print_separator("pipx"); + + let success = || -> Result<(), Error> { + Executor::new(&pipx, dry_run) + .arg("upgrade-all") + .spawn()? + .wait()? + .check()?; + Ok(()) + }().is_ok(); + + return Some(("pipx", success)); + } + + None +} + #[must_use] pub fn run_custom_command(name: &str, command: &str, terminal: &mut Terminal, dry_run: bool) -> Result<(), Error> { terminal.print_separator(name); diff --git a/src/main.rs b/src/main.rs index 2fef5c3a..ff6f4d53 100644 --- a/src/main.rs +++ b/src/main.rs @@ -265,6 +265,10 @@ fn run() -> Result<(), Error> { |terminal| generic::run_opam_update(terminal, opt.dry_run), &mut execution_context, )?); + report.push_result(execute( + |terminal| generic::run_pipx_update(terminal, opt.dry_run), + &mut execution_context, + )?); report.push_result(execute( |terminal| generic::run_jetpack(terminal, opt.dry_run), &mut execution_context, From fde62711d5092aafef1b398782ae8550c1d21d48 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 1 Nov 2018 11:28:27 +0200 Subject: [PATCH 012/140] Use the console crate --- Cargo.lock | 13 -------- Cargo.toml | 2 -- src/main.rs | 2 -- src/terminal.rs | 85 +++++++++++++++++++++++-------------------------- 4 files changed, 39 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73a84820..51c34e75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -463,16 +463,6 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "term_size" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "termcolor" version = "1.0.4" @@ -539,8 +529,6 @@ dependencies = [ "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", - "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -711,7 +699,6 @@ dependencies = [ "checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311" "checksum syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)" = "3391038ebc3e4ab24eb028cb0ef2f2dc4ba0cbf72ee895ed6a6fad730640b5bc" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" diff --git a/Cargo.toml b/Cargo.toml index 4403065c..9079fca0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,8 +19,6 @@ shellexpand = "1.0.0" structopt = "0.2.12" log = "0.4.6" env_logger = "0.5.13" -term_size = "0.3.1" -termcolor = "1.0.4" walkdir = "2.2.6" console = "0.6.2" diff --git a/src/main.rs b/src/main.rs index ff6f4d53..7b4ce3cc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,8 +19,6 @@ extern crate nix; #[cfg(unix)] #[macro_use] extern crate lazy_static; -extern crate term_size; -extern crate termcolor; extern crate walkdir; #[cfg(target_os = "linux")] diff --git a/src/terminal.rs b/src/terminal.rs index c4ecae2e..1351cdd4 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -1,19 +1,18 @@ -use console::Term; +use console::{style, Term}; use std::cmp::{max, min}; use std::io::{self, Write}; -use term_size; -use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor}; pub struct Terminal { - width: Option, - stdout: StandardStream, + width: Option, + term: Term, } impl Terminal { pub fn new() -> Self { + let term = Term::stdout(); Self { - width: term_size::dimensions().map(|(w, _)| w), - stdout: StandardStream::stdout(ColorChoice::Auto), + width: term.size_checked().map(|(_, w)| w), + term, } } @@ -21,21 +20,19 @@ impl Terminal { let message = message.as_ref(); match self.width { Some(width) => { - let _ = self - .stdout - .set_color(ColorSpec::new().set_fg(Some(Color::White)).set_bold(true)); - let _ = writeln!( - &mut self.stdout, - "\n―― {} {:―^border$}", - message, - "", - border = max(2, min(80, width as usize) - 3 - message.len()) + println!( + "{}", + style(format!( + "\n―― {} {:―^border$}", + message, + "", + border = max(2, min(80, width as usize) - 3 - message.len()) + )).bold() + .white() ); - let _ = self.stdout.reset(); - let _ = self.stdout.flush(); } None => { - let _ = writeln!(&mut self.stdout, "―― {} ――", message); + println!("―― {} ――", message); } } } @@ -43,29 +40,21 @@ impl Terminal { #[allow(dead_code)] pub fn print_warning>(&mut self, message: P) { let message = message.as_ref(); - - let _ = self - .stdout - .set_color(ColorSpec::new().set_fg(Some(Color::Yellow)).set_bold(true)); - let _ = writeln!(&mut self.stdout, "{}", message); - let _ = self.stdout.reset(); - let _ = self.stdout.flush(); + println!("{}", style(message).yellow().bold()); } pub fn print_result>(&mut self, key: P, succeeded: bool) { let key = key.as_ref(); - let _ = write!(&mut self.stdout, "{}: ", key); - let _ = self.stdout.set_color( - ColorSpec::new() - .set_fg(Some(if succeeded { Color::Green } else { Color::Red })) - .set_bold(true), + println!( + "{}: {}", + key, + if succeeded { + style("OK").bold().green() + } else { + style("FAILED").bold().red() + } ); - - let _ = writeln!(&mut self.stdout, "{}", if succeeded { "OK" } else { "FAILED" }); - - let _ = self.stdout.reset(); - let _ = self.stdout.flush(); } pub fn should_retry(&mut self, running: bool) -> Result { @@ -75,17 +64,21 @@ impl Terminal { println!(); loop { - let _ = self - .stdout - .set_color(ColorSpec::new().set_fg(Some(Color::Yellow)).set_bold(true)); - let _ = write!(&mut self.stdout, "Retry? [y/N] "); - if !running { - write!(&mut self.stdout, "(Press Ctrl+C again to stop Topgrade) "); - } - let _ = self.stdout.reset(); - let _ = self.stdout.flush(); + self.term + .write_fmt(format_args!( + "{}", + style(format!( + "Retry? [y/N] {}", + if !running { + "(Press Ctrl+C again to stop Topgrade) " + } else { + "" + } + )).yellow() + .bold() + )).ok(); - match Term::stdout().read_char()? { + match self.term.read_char()? { 'y' | 'Y' => return Ok(true), 'n' | 'N' | '\r' | '\n' => return Ok(false), _ => (), From d2788ea47be3d11e59f8190e5486d398a66c713a Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 2 Nov 2018 16:31:49 +0200 Subject: [PATCH 013/140] Use which to determine the existence of cargo-install-update (#82) --- src/generic.rs | 4 ++-- src/main.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/generic.rs b/src/generic.rs index 158b2fb7..d55ab011 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -9,8 +9,8 @@ use std::process::Command; const EMACS_UPGRADE: &str = include_str!("emacs.el"); #[must_use] -pub fn run_cargo_update(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { - if let Some(cargo_update) = base_dirs.home_dir().join(".cargo/bin/cargo-install-update").if_exists() { +pub fn run_cargo_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + if let Some(cargo_update) = utils::which("cargo-install-update") { terminal.print_separator("Cargo"); let success = || -> Result<(), Error> { diff --git a/src/main.rs b/src/main.rs index 7b4ce3cc..cf557cfe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -248,7 +248,7 @@ fn run() -> Result<(), Error> { &mut execution_context, )?); report.push_result(execute( - |terminal| generic::run_cargo_update(&base_dirs, terminal, opt.dry_run), + |terminal| generic::run_cargo_update(terminal, opt.dry_run), &mut execution_context, )?); From 7d43057c272f4f0ce432846b5127a4fd05e07b5d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 3 Nov 2018 22:57:09 +0200 Subject: [PATCH 014/140] Support OpenSUSE --- src/linux.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/linux.rs b/src/linux.rs index 12690d48..cd215250 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -14,6 +14,7 @@ pub enum Distribution { Debian, Ubuntu, Gentoo, + OpenSuse, } #[derive(Debug, Fail)] @@ -48,6 +49,10 @@ impl Distribution { return Ok(Distribution::Debian); } + if content.contains("openSUSE") { + return Ok(Distribution::OpenSuse); + } + if PathBuf::from("/etc/gentoo-release").exists() { return Ok(Distribution::Gentoo); } @@ -70,6 +75,7 @@ impl Distribution { Distribution::Fedora => upgrade_fedora(&sudo, terminal, dry_run), Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, terminal, dry_run), Distribution::Gentoo => upgrade_gentoo(&sudo, terminal, dry_run), + Distribution::OpenSuse => upgrade_opensuse(&sudo, terminal, dry_run), }; Some(("System update", success.is_ok())) @@ -143,6 +149,26 @@ fn upgrade_redhat(sudo: &Option, terminal: &mut Terminal, dry_run: bool Ok(()) } +fn upgrade_opensuse(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { + if let Some(sudo) = &sudo { + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/zypper", "refresh"]) + .spawn()? + .wait()? + .check()?; + + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/zypper", "dist-upgrade"]) + .spawn()? + .wait()? + .check()?; + } else { + terminal.print_warning("No sudo detected. Skipping system upgrade"); + } + + Ok(()) +} + fn upgrade_fedora(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) From 86221188330d685aee4d48afeb9d9cc6023bb0e8 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 4 Nov 2018 11:31:10 +0200 Subject: [PATCH 015/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51c34e75..9a15f20f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -515,7 +515,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "0.17.0" +version = "0.18.0" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 9079fca0..06a08c9b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENCE" repository = "https://github.com/r-darwish/topgrade" -version = "0.17.0" +version = "0.18.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From 9f52d7b1e2caca0e2254021a3c36dfc7e70f0a74 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 4 Nov 2018 11:46:47 +0200 Subject: [PATCH 016/140] Update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5cfabcd0..2a9e3652 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ Just run `topgrade`. It will run the following steps: * *Fedora* - Run `dnf upgrade` * *Debian/Ubuntu*: Run `apt update && apt dist-upgrade` * *Gentoo*: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` + * *openSUSE*: Run `zypper refresh && zypper dist-upgrade` * *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * *Unix*: Run `nix upgrade-nix && nix --upgrade`. From ed8a842439195bae8b1622cfe7fbd79236632f44 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 7 Nov 2018 10:18:18 +0200 Subject: [PATCH 017/140] Use downcast_ref for errors --- src/main.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index cf557cfe..9186334d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -397,13 +397,9 @@ fn main() { exit(0); } Err(error) => { - match error - .downcast::() - .map(|_| ()) - .or_else(|error| error.downcast::().map(|_| ())) - { - Ok(_) => (), - Err(error) => println!("ERROR: {}", error), + if (error.downcast_ref::().is_some()) || (error.downcast_ref::().is_some()) { + } else { + println!("ERROR: {}", error) } exit(1); } From 24f8053b170a8c5a2ef666984615f784b740e1a1 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 7 Nov 2018 10:22:13 +0200 Subject: [PATCH 018/140] Support Oracle Linux (fix #83) --- src/linux.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linux.rs b/src/linux.rs index cd215250..2d5289e3 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -33,7 +33,7 @@ impl Distribution { return Ok(Distribution::Arch); } - if content.contains("CentOS") { + if content.contains("CentOS") || content.contains("Oracle Linux") { return Ok(Distribution::CentOS); } From 6108637477b0e27c1f59c186dbc92dbcbaec7cdb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 7 Nov 2018 14:31:44 +0200 Subject: [PATCH 019/140] Implement self-update --- Cargo.lock | 1029 +++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 6 + README.md | 2 +- ci/before_deploy.sh | 2 +- ci/script.sh | 2 + src/generic.rs | 37 ++ src/main.rs | 22 +- 7 files changed, 1095 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9a15f20f..61bf1f5f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,3 +1,8 @@ +[[package]] +name = "adler32" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "aho-corasick" version = "0.6.9" @@ -14,6 +19,14 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "arrayvec" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "atty" version = "0.2.11" @@ -45,11 +58,39 @@ dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "base64" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bitflags" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "build_const" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "byteorder" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "bytes" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cc" version = "1.0.25" @@ -109,6 +150,58 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "core-foundation" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "core-foundation-sys" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crc" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-deque" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-utils" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "directories" version = "1.0.2" @@ -118,6 +211,19 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "dtoa" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "encoding_rs" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "env_logger" version = "0.5.13" @@ -150,6 +256,44 @@ dependencies = [ "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "filetime" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "flate2" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "fnv" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -164,6 +308,52 @@ name = "fuchsia-zircon-sys" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "futures" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "futures-cpupool" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "h2" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "http" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "httparse" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "humantime" version = "1.1.1" @@ -172,6 +362,89 @@ dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "hyper" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "hyper-old-types" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "hyper-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)", + "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "indexmap" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "iovec" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "itoa" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "kernel32-sys" version = "0.2.2" @@ -181,6 +454,11 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "language-tags" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "lazy_static" version = "0.2.11" @@ -194,11 +472,26 @@ dependencies = [ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lazycell" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "libc" version = "0.2.43" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "libflate" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "lock_api" version = "0.1.4" @@ -216,6 +509,11 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "memchr" version = "2.1.1" @@ -226,6 +524,124 @@ dependencies = [ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "memoffset" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "mime" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "mime_guess" +version = "2.0.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "miniz-sys" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "miniz_oxide" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "miniz_oxide_c_api" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "mio" +version = "0.6.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "mio-uds" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "miow" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "native-tls" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "net2" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "nix" version = "0.11.0" @@ -238,6 +654,48 @@ dependencies = [ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "nodrop" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "num_cpus" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl" +version = "0.10.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl-probe" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "openssl-sys" +version = "0.9.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "owning_ref" version = "0.3.3" @@ -267,6 +725,63 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "pbr" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "phf" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "phf_codegen" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "phf_generator" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "phf_shared" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pkg-config" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "proc-macro2" version = "0.4.20" @@ -288,6 +803,16 @@ dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand" version = "0.5.5" @@ -346,6 +871,40 @@ dependencies = [ "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "remove_dir_all" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "reqwest" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", + "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", + "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rustc-demangle" version = "0.1.9" @@ -359,6 +918,16 @@ dependencies = [ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ryu" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "safemem" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "same-file" version = "1.0.4" @@ -367,11 +936,55 @@ dependencies = [ "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "schannel" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "security-framework" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "security-framework-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "self_update" +version = "0.4.3" +source = "git+https://github.com/r-darwish/self_update?branch=bump-reqwest#3848bc18bb8c6090913595548fb561f4b2545c8b" +dependencies = [ + "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", + "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "semver" version = "0.9.0" @@ -400,11 +1013,42 @@ dependencies = [ "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "serde_json" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "serde_urlencoded" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "shellexpand" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "slab" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "smallvec" version = "0.6.5" @@ -418,6 +1062,11 @@ name = "stable_deref_trait" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "string" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "strsim" version = "0.7.0" @@ -463,6 +1112,39 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tar" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tempfile" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "termcolor" version = "1.0.4" @@ -505,6 +1187,169 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "time" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-current-thread" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-executor" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-fs" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-io" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-reactor" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-tcp" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-threadpool" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-timer" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-udp" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-uds" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "toml" version = "0.4.8" @@ -525,6 +1370,7 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "self_update 0.4.3 (git+https://github.com/r-darwish/self_update?branch=bump-reqwest)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -534,11 +1380,45 @@ dependencies = [ "which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "try-lock" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "ucd-util" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unicase" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "unicase" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "unicode-width" version = "0.1.5" @@ -557,11 +1437,34 @@ dependencies = [ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "url" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "utf8-ranges" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "uuid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "vcpkg" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "vec_map" version = "0.8.1" @@ -587,6 +1490,16 @@ dependencies = [ "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "want" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "which" version = "2.0.0" @@ -642,40 +1555,116 @@ dependencies = [ "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "xattr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + [metadata] +"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" +"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" +"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" +"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f84dec9bc083ce2503908cd305af98bd363da6f54bf8d4bf0ac14ee749ad5d1" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd48adf136733979b49e15bc3b4c43cc0d3c85ece7bd08e6daa414c6fcb13e6" +"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" +"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" +"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" +"checksum crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1" +"checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9" +"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" +"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" +"checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" "checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" +"checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f" +"checksum flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3b0c7353385f92079524de3b7116cf99d73947c08a7472774e9b3b04bff3b901" +"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" +"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" +"checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed" +"checksum http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "24f58e8c2d8e886055c3ead7b28793e1455270b5fb39650984c224bc538ba581" +"checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" +"checksum hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)" = "95ffee0d1d30de4313fdaaa485891ce924991d45bbc18adfc8ac5b1639e62fbb" +"checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" +"checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" +"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" +"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" +"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" +"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" +"checksum libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "21138fc6669f438ed7ae3559d5789a5f0ba32f28c1f0608d1e452b0bb06ee936" "checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" +"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" +"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" +"checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630" +"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" +"checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" +"checksum miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ad30a47319c16cde58d0314f5d98202a80c9083b5f61178457403dfb14e509c" +"checksum miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28edaef377517fd9fe3e085c37d892ce7acd1fbeab9239c5a36eec352d8a8b7e" +"checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" +"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" +"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +"checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" +"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" +"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" +"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" +"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" +"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" +"checksum pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "deb73390ab68d81992bd994d145f697451bb0b54fd39738e72eef32458ad6907" +"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6" +"checksum phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "7d187f00cd98d5afbcd8898f6cf181743a449162aeb329dcd2f3849009e605ad" +"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b" +"checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b" +"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" @@ -683,37 +1672,75 @@ dependencies = [ "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" +"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" +"checksum reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "00a5870d8edc74fc6e1eb58edbd2815d2243e1a2255d6bf9c82a7a875901b5db" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" +"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" +"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" +"checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" +"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" +"checksum self_update 0.4.3 (git+https://github.com/r-darwish/self_update?branch=bump-reqwest)" = "" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" "checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" +"checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce" +"checksum serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aaed41d9fb1e2f587201b863356590c90c1157495d811430a0c0325fe8169650" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" +"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" +"checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" "checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" +"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d77af7242f18c40fd19cb270985930f239ee1646cfb482050bbae9da1d18743b" "checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311" "checksum syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)" = "3391038ebc3e4ab24eb028cb0ef2f2dc4ba0cbf72ee895ed6a6fad730640b5bc" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" +"checksum tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "83b0d14b53dbfd62681933fadd651e815f99e6084b649e049ab99296e05ab3de" +"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" +"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" +"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895" +"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" +"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c" +"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" +"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" +"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" +"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018" +"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" +"checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68" +"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e" +"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c" +"checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70" "checksum toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65" +"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" +"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" +"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" +"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +"checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +"checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" +"checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0ffb549f212c31e19f3667c55a7f515b983a84aef10fd0a4d1f9c125425115f3" +"checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" "checksum which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49c4f580e93079b70ac522e7bdebbe1568c8afa7d8d05ee534ee737ca37d2f51" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" @@ -722,3 +1749,5 @@ dependencies = [ "checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" +"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +"checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" diff --git a/Cargo.toml b/Cargo.toml index 06a08c9b..dfc438bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ log = "0.4.6" env_logger = "0.5.13" walkdir = "2.2.6" console = "0.6.2" +self_update = { git = "https://github.com/r-darwish/self_update", branch = "bump-reqwest", optional = true } [target.'cfg(unix)'.dependencies] nix = "0.11.0" @@ -28,3 +29,8 @@ lazy_static = "1.1.0" [profile.release] lto = true + +[features] +default = [] + +self-update = ["self_update"] diff --git a/README.md b/README.md index 2a9e3652..25bcc34c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Arch Linux users can use the [AUR](https://aur.archlinux.org/packages/topgrade/) macOS users can install topgrade via Homebrew. Other systems users can either use `cargo install` or use the compiled binaries from the release -page. +page. The compiled binaries contain a self-upgrading feature. Topgrade isn't guaranteed to work on Rust versions older than the latest stable release. If you intend to install Topgrade using Cargo then you should either install Rust using rustup or use a diff --git a/ci/before_deploy.sh b/ci/before_deploy.sh index 176d7181..099344a5 100644 --- a/ci/before_deploy.sh +++ b/ci/before_deploy.sh @@ -18,7 +18,7 @@ main() { test -f Cargo.lock || cargo generate-lockfile # TODO Update this to build the artifacts that matter to you - cross rustc --bin topgrade --target $TARGET --release -- -C lto + cross rustc --bin topgrade --target $TARGET --release --all-features -- -C lto # TODO Update this to package the right artifacts cp target/$TARGET/release/topgrade $stage/ diff --git a/ci/script.sh b/ci/script.sh index ee3383d1..db416121 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -8,6 +8,8 @@ main() { cargo clippy --all-targets --all-features -- -D warnings cross check --target $TARGET cross check --target $TARGET --release + cross check --target $TARGET --all-features + cross check --target $TARGET --release --all-features if [ ! -z $DISABLE_TESTS ]; then return diff --git a/src/generic.rs b/src/generic.rs index d55ab011..7800eb83 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -229,3 +229,40 @@ pub fn run_composer_update( None } + +#[must_use] +#[cfg(all( + feature = "self-update", + any(windows, target_os = "linux", target_os = "macos") +))] +pub fn self_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + terminal.print_separator("Self update"); + let success = if !dry_run { + let result = || -> Result<(), Error> { + let target = self_update::get_target()?; + self_update::backends::github::Update::configure()? + .repo_owner("r-darwish") + .repo_name("topgrade") + .target(&target) + .bin_name("topgrade") + .show_download_progress(true) + .current_version(cargo_crate_version!()) + .no_confirm(true) + .build()? + .update()?; + Ok(()) + }(); + + match result { + Err(e) => { + println!("{}", e); + false + } + Ok(_) => (true), + } + } else { + true + }; + + Some(("Self update", success)) +} diff --git a/src/main.rs b/src/main.rs index 9186334d..330087f4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,6 +19,12 @@ extern crate nix; #[cfg(unix)] #[macro_use] extern crate lazy_static; +#[cfg(all( + feature = "self-update", + any(windows, target_os = "linux", target_os = "macos") +))] +#[macro_use] +extern crate self_update; extern crate walkdir; #[cfg(target_os = "linux")] @@ -114,20 +120,30 @@ fn run() -> Result<(), Error> { } env_logger::init(); - let base_dirs = directories::BaseDirs::new().ok_or(NoBaseDirectories)?; - let git = Git::new(); - let mut git_repos = Repositories::new(&git); let mut execution_context = ExecutionContext { terminal: Terminal::new(), }; + let base_dirs = directories::BaseDirs::new().ok_or(NoBaseDirectories)?; + let git = Git::new(); + let mut git_repos = Repositories::new(&git); + let config = Config::read(&base_dirs)?; let mut report = Report::new(); #[cfg(target_os = "linux")] let sudo = utils::which("sudo"); + #[cfg(all( + feature = "self-update", + any(windows, target_os = "linux", target_os = "macos") + ))] + report.push_result(execute( + |terminal| generic::self_update(terminal, opt.dry_run), + &mut execution_context, + )?); + if let Some(commands) = config.pre_commands() { for (name, command) in commands { generic::run_custom_command(&name, &command, &mut execution_context.terminal, opt.dry_run)?; From 590d166bacb164d06234e866cc89aaa88fe9509c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 7 Nov 2018 14:38:27 +0200 Subject: [PATCH 020/140] Print a newline after the retry question --- appveyor.yml | 4 +++- src/terminal.rs | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index fadd3d4d..accf1eb7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,10 +29,12 @@ test_script: - if [%APPVEYOR_REPO_TAG%]==[false] ( cargo check --target %TARGET% && cargo check --target %TARGET% --release + cargo check --target %TARGET% --all-features && + cargo check --target %TARGET% --all-features --release ) before_deploy: - - cargo rustc --target %TARGET% --release --bin topgrade -- -C lto + - cargo rustc --target %TARGET% --release --bin topgrade --all-features -- -C lto - ps: ci\before_deploy.ps1 deploy: diff --git a/src/terminal.rs b/src/terminal.rs index 1351cdd4..4458f52e 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -78,7 +78,9 @@ impl Terminal { .bold() )).ok(); - match self.term.read_char()? { + let answer = self.term.read_char()?; + println!(); + match answer { 'y' | 'Y' => return Ok(true), 'n' | 'N' | '\r' | '\n' => return Ok(false), _ => (), From 663eb027c503f148e85af7b40f2a8fc9c11e3ec8 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 8 Nov 2018 10:55:24 +0200 Subject: [PATCH 021/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61bf1f5f..92b70b7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "0.18.0" +version = "0.19.0" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index dfc438bc..952734c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENCE" repository = "https://github.com/r-darwish/topgrade" -version = "0.18.0" +version = "0.19.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From c333f9d8137e596e5270e9ec5fc2777d96d94fb0 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 10 Nov 2018 20:18:43 +0200 Subject: [PATCH 022/140] Ignore bad retry answer (fix #86) --- src/terminal.rs | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/terminal.rs b/src/terminal.rs index 4458f52e..274beeea 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -63,28 +63,29 @@ impl Terminal { } println!(); - loop { - self.term - .write_fmt(format_args!( - "{}", - style(format!( - "Retry? [y/N] {}", - if !running { - "(Press Ctrl+C again to stop Topgrade) " - } else { - "" - } - )).yellow() - .bold() - )).ok(); + self.term + .write_fmt(format_args!( + "{}", + style(format!( + "Retry? [y/N] {}", + if !running { + "(Press Ctrl+C again to stop Topgrade) " + } else { + "" + } + )).yellow() + .bold() + )).ok(); - let answer = self.term.read_char()?; - println!(); - match answer { - 'y' | 'Y' => return Ok(true), - 'n' | 'N' | '\r' | '\n' => return Ok(false), + let answer = loop { + match self.term.read_char()? { + 'y' | 'Y' => break Ok(true), + 'n' | 'N' | '\r' | '\n' => break Ok(false), _ => (), } - } + }; + + println!(); + answer } } From 9de363383ca66688e8eaa46aee5da46620bf695c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 12 Nov 2018 11:23:32 +0200 Subject: [PATCH 023/140] Don't use a fork of self_update --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 92b70b7b..704d6051 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -972,8 +972,8 @@ dependencies = [ [[package]] name = "self_update" -version = "0.4.3" -source = "git+https://github.com/r-darwish/self_update?branch=bump-reqwest#3848bc18bb8c6090913595548fb561f4b2545c8b" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1370,7 +1370,7 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.4.3 (git+https://github.com/r-darwish/self_update?branch=bump-reqwest)", + "self_update 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1683,7 +1683,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" -"checksum self_update 0.4.3 (git+https://github.com/r-darwish/self_update?branch=bump-reqwest)" = "" +"checksum self_update 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "eca55ac0cc17ff6b2f51da1bdedf13f7c48ae911a87caabe72aa11cd25f2b187" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" diff --git a/Cargo.toml b/Cargo.toml index 952734c3..a5ad1b6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.6" env_logger = "0.5.13" walkdir = "2.2.6" console = "0.6.2" -self_update = { git = "https://github.com/r-darwish/self_update", branch = "bump-reqwest", optional = true } +self_update = { version = "0.4.4", optional = true } [target.'cfg(unix)'.dependencies] nix = "0.11.0" From b14c948567d18c29b124118d21c053f64c810b0a Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 12 Nov 2018 20:45:43 +0200 Subject: [PATCH 024/140] Fix AppVeyor --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index accf1eb7..72c518a2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -28,7 +28,7 @@ install: test_script: - if [%APPVEYOR_REPO_TAG%]==[false] ( cargo check --target %TARGET% && - cargo check --target %TARGET% --release + cargo check --target %TARGET% --release && cargo check --target %TARGET% --all-features && cargo check --target %TARGET% --all-features --release ) From 1e73011a1552074c34d5a0815bfa927da8809863 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 12 Nov 2018 11:13:43 +0200 Subject: [PATCH 025/140] Add FreeBSD --- .travis.yml | 1 + README.md | 2 ++ src/freebsd.rs | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 19 ++++++++++++++++- 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/freebsd.rs diff --git a/.travis.yml b/.travis.yml index b76be3a4..b8b74780 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,7 @@ matrix: - env: TARGET=armv7-unknown-linux-gnueabihf - env: TARGET=x86_64-unknown-linux-gnu - env: TARGET=x86_64-unknown-linux-musl + - env: TARGET=x86_64-unknown-freebsd # OSX - env: TARGET=x86_64-apple-darwin diff --git a/README.md b/README.md index 25bcc34c..677648aa 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Just run `topgrade`. It will run the following steps: * *Gentoo*: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` * *openSUSE*: Run `zypper refresh && zypper dist-upgrade` * *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): +* *FreeBSD*: Upgrade and audit packages * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * *Unix*: Run `nix upgrade-nix && nix --upgrade`. * *Windows*: Upgrade Powershell modules @@ -79,6 +80,7 @@ Just run `topgrade`. It will run the following steps: * *Linux*: Run [needrestart](https://github.com/liske/needrestart) * *Windows*: Run Windows Update (You'll have to install [PSWindowsUpdate](https://marckean.com/2016/06/01/use-powershell-to-install-windows-updates/)) * *macOS*: Upgrade App Store applications + * *FreeBSD*: Run `freebsd-upgrade` ## Flags * `-t/--tmux` - Topgrade will launch itself in a new tmux session. This flag has no effect if diff --git a/src/freebsd.rs b/src/freebsd.rs new file mode 100644 index 00000000..68cc24ca --- /dev/null +++ b/src/freebsd.rs @@ -0,0 +1,56 @@ +use super::executor::Executor; +use super::terminal::Terminal; +use super::utils::Check; +use failure; +use std::path::PathBuf; + +#[must_use] +pub fn upgrade_freebsd(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + terminal.print_separator("FreeBSD Update"); + + if let Some(sudo) = sudo { + let success = || -> Result<(), failure::Error> { + Executor::new(sudo, dry_run) + .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) + .spawn()? + .wait()? + .check()?; + Ok(()) + }().is_ok(); + + Some(("FreeBSD Update", success)) + } else { + terminal.print_warning("No sudo or yay detected. Skipping system upgrade"); + None + } +} + +#[must_use] +pub fn upgrade_packages( + sudo: &Option, + terminal: &mut Terminal, + dry_run: bool, +) -> Option<(&'static str, bool)> { + terminal.print_separator("FreeBSD Packages"); + + if let Some(sudo) = sudo { + let success = || -> Result<(), failure::Error> { + Executor::new(sudo, dry_run) + .args(&["/usr/sbin/pkg", "upgrade"]) + .spawn()? + .wait()? + .check()?; + Executor::new("/usr/sbin/pkg", dry_run) + .arg("audit") + .spawn()? + .wait()? + .check()?; + Ok(()) + }().is_ok(); + + Some(("FreeBSD Packages", success)) + } else { + terminal.print_warning("No sudo or yay detected. Skipping package upgrade"); + None + } +} diff --git a/src/main.rs b/src/main.rs index 330087f4..414d283b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,6 +27,8 @@ extern crate lazy_static; extern crate self_update; extern crate walkdir; +#[cfg(target_os = "freebsd")] +mod freebsd; #[cfg(target_os = "linux")] mod linux; #[cfg(target_os = "macos")] @@ -132,7 +134,7 @@ fn run() -> Result<(), Error> { let config = Config::read(&base_dirs)?; let mut report = Report::new(); - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "freebsd", target_os = "linux"))] let sudo = utils::which("sudo"); #[cfg(all( @@ -200,6 +202,11 @@ fn run() -> Result<(), Error> { |terminal| unix::run_homebrew(terminal, opt.dry_run), &mut execution_context, )?); + #[cfg(target_os = "freebsd")] + report.push_result(execute( + |terminal| freebsd::upgrade_packages(&sudo, terminal, opt.dry_run), + &mut execution_context, + )?); #[cfg(unix)] report.push_result(execute( |terminal| unix::run_nix(terminal, opt.dry_run), @@ -375,6 +382,16 @@ fn run() -> Result<(), Error> { } } + #[cfg(target_os = "freebsd")] + { + if !opt.no_system { + report.push_result(execute( + |terminal| freebsd::upgrade_freebsd(&sudo, terminal, opt.dry_run), + &mut execution_context, + )?); + } + } + #[cfg(windows)] { if !opt.no_system { From 7a9e1e4bee91a1c3288b8f769839453643b2cd4e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 12 Nov 2018 21:27:49 +0200 Subject: [PATCH 026/140] Respawn Topgrade when version is upgraded (fix #85) --- README.md | 2 ++ src/generic.rs | 37 ---------------------------- src/main.rs | 65 ++++++++++++++++++++++++++++++++++++++++--------- src/terminal.rs | 6 +++++ 4 files changed, 61 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 677648aa..53394972 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ distribution which ships the latest version of Rust, such as Arch Linux. ## Usage Just run `topgrade`. It will run the following steps: +* Try to self-upgrade if compiled with this feature. On Unix systems Topgrade will also respawn + itself if it was upgraded * *Linux*: Run the system package manager: * *Arch*: Run [yay](https://github.com/Jguer/yay) or fall back to pacman * *CentOS/RHEL*: Run `yum upgrade` diff --git a/src/generic.rs b/src/generic.rs index 7800eb83..d55ab011 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -229,40 +229,3 @@ pub fn run_composer_update( None } - -#[must_use] -#[cfg(all( - feature = "self-update", - any(windows, target_os = "linux", target_os = "macos") -))] -pub fn self_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { - terminal.print_separator("Self update"); - let success = if !dry_run { - let result = || -> Result<(), Error> { - let target = self_update::get_target()?; - self_update::backends::github::Update::configure()? - .repo_owner("r-darwish") - .repo_name("topgrade") - .target(&target) - .bin_name("topgrade") - .show_download_progress(true) - .current_version(cargo_crate_version!()) - .no_confirm(true) - .build()? - .update()?; - Ok(()) - }(); - - match result { - Err(e) => { - println!("{}", e); - false - } - Ok(_) => (true), - } - } else { - true - }; - - Some(("Self update", success)) -} diff --git a/src/main.rs b/src/main.rs index 414d283b..0f09fca1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,10 +19,7 @@ extern crate nix; #[cfg(unix)] #[macro_use] extern crate lazy_static; -#[cfg(all( - feature = "self-update", - any(windows, target_os = "linux", target_os = "macos") -))] +#[cfg(feature = "self-update")] #[macro_use] extern crate self_update; extern crate walkdir; @@ -59,7 +56,11 @@ use failure::Error; use std::borrow::Cow; use std::env; use std::io::ErrorKind; +#[cfg(all(unix, feature = "self-update"))] +use std::os::unix::process::CommandExt; use std::process::exit; +#[cfg(all(unix, feature = "self-update"))] +use std::process::Command; use structopt::StructOpt; #[derive(Fail, Debug)] @@ -109,6 +110,44 @@ where Ok(None) } +#[must_use] +#[cfg(feature = "self-update")] +pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { + terminal.print_separator("Self update"); + #[cfg(unix)] + let current_exe = env::current_exe(); + + let target = self_update::get_target()?; + let result = self_update::backends::github::Update::configure()? + .repo_owner("r-darwish") + .repo_name("topgrade") + .target(&target) + .bin_name("topgrade") + .show_output(false) + .show_download_progress(true) + .current_version(cargo_crate_version!()) + .no_confirm(true) + .build()? + .update()?; + + if let self_update::Status::Updated(version) = &result { + println!("\nTopgrade upgraded to {}", version); + } else { + println!("Topgrade is up-to-date"); + } + + #[cfg(unix)] + { + if result.updated() { + terminal.print_warning("Respawning..."); + let err = Command::new(current_exe?).args(env::args().skip(1)).exec(); + Err(err)? + } + } + + Ok(()) +} + fn run() -> Result<(), Error> { ctrlc::set_handler(); @@ -137,14 +176,16 @@ fn run() -> Result<(), Error> { #[cfg(any(target_os = "freebsd", target_os = "linux"))] let sudo = utils::which("sudo"); - #[cfg(all( - feature = "self-update", - any(windows, target_os = "linux", target_os = "macos") - ))] - report.push_result(execute( - |terminal| generic::self_update(terminal, opt.dry_run), - &mut execution_context, - )?); + #[cfg(feature = "self-update")] + { + if !opt.dry_run { + if let Err(e) = self_update(&mut execution_context.terminal) { + execution_context + .terminal + .print_warning(format!("Self update error: {}", e)); + } + } + } if let Some(commands) = config.pre_commands() { for (name, command) in commands { diff --git a/src/terminal.rs b/src/terminal.rs index 274beeea..c5d33ef9 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -89,3 +89,9 @@ impl Terminal { answer } } + +impl Default for Terminal { + fn default() -> Self { + Self::new() + } +} From fa39665bd3c4cdd616b272bf327d0d041b911a92 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 15 Nov 2018 11:37:08 +0200 Subject: [PATCH 027/140] Audit FreeBSD packages at summary --- src/freebsd.rs | 12 +++++++----- src/main.rs | 3 +++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/freebsd.rs b/src/freebsd.rs index 68cc24ca..5e522ef8 100644 --- a/src/freebsd.rs +++ b/src/freebsd.rs @@ -3,6 +3,7 @@ use super::terminal::Terminal; use super::utils::Check; use failure; use std::path::PathBuf; +use std::process::Command; #[must_use] pub fn upgrade_freebsd(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { @@ -40,11 +41,6 @@ pub fn upgrade_packages( .spawn()? .wait()? .check()?; - Executor::new("/usr/sbin/pkg", dry_run) - .arg("audit") - .spawn()? - .wait()? - .check()?; Ok(()) }().is_ok(); @@ -54,3 +50,9 @@ pub fn upgrade_packages( None } } + +pub fn audit_packages() -> Result<(), failure::Error> { + println!(); + Command::new("/usr/sbin/pkg").args(&["audit", "-Fr"]).spawn()?.wait()?; + Ok(()) +} diff --git a/src/main.rs b/src/main.rs index 0f09fca1..ccbf69e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -456,6 +456,9 @@ fn run() -> Result<(), Error> { distribution.show_summary(); } } + + #[cfg(target_os = "freebsd")] + freebsd::audit_packages().ok(); } if report.data().iter().all(|(_, succeeded)| *succeeded) { From d6787812a23e60d71961e31b9e6ee34755b324f4 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 15 Nov 2018 12:05:37 +0200 Subject: [PATCH 028/140] Remove cargo-fmt from CI For some reason it's inconsistent between my computer and the CI, despite both are up-to-date --- appveyor.yml | 2 +- ci/script.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 72c518a2..101e820e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,7 +20,7 @@ install: - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION% - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - rustup component add rustfmt-preview clippy-preview - - cargo fmt --all -- --check + # - cargo fmt --all -- --check - cargo clippy --all-targets --all-features -- -D warnings - rustc -Vv - cargo -V diff --git a/ci/script.sh b/ci/script.sh index db416121..54079325 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -4,7 +4,7 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { - cargo fmt --all -- --check + # cargo fmt --all -- --check cargo clippy --all-targets --all-features -- -D warnings cross check --target $TARGET cross check --target $TARGET --release From 846772c609e910784e30ec8c963075c1280899ed Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 15 Nov 2018 12:43:17 +0200 Subject: [PATCH 029/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 704d6051..d93385ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "0.19.0" +version = "1.0.0" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index a5ad1b6d..ae5a14f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENCE" repository = "https://github.com/r-darwish/topgrade" -version = "0.19.0" +version = "1.0.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From 92286853d14abed82d9579cdbd1944608e538af0 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 15 Nov 2018 15:54:24 +0200 Subject: [PATCH 030/140] Use sudo for package auditing --- src/freebsd.rs | 11 ++++++++--- src/main.rs | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/freebsd.rs b/src/freebsd.rs index 5e522ef8..086dcb4f 100644 --- a/src/freebsd.rs +++ b/src/freebsd.rs @@ -51,8 +51,13 @@ pub fn upgrade_packages( } } -pub fn audit_packages() -> Result<(), failure::Error> { - println!(); - Command::new("/usr/sbin/pkg").args(&["audit", "-Fr"]).spawn()?.wait()?; +pub fn audit_packages(sudo: &Option) -> Result<(), failure::Error> { + if let Some(sudo) = sudo { + println!(); + Command::new(sudo) + .args(&["/usr/sbin/pkg", "audit", "-Fr"]) + .spawn()? + .wait()?; + } Ok(()) } diff --git a/src/main.rs b/src/main.rs index ccbf69e7..bc41d3cf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -458,7 +458,7 @@ fn run() -> Result<(), Error> { } #[cfg(target_os = "freebsd")] - freebsd::audit_packages().ok(); + freebsd::audit_packages(&sudo).ok(); } if report.data().iter().all(|(_, succeeded)| *succeeded) { From 2661a8753edd9d38ca9d617894bc120962cd42ec Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 16 Nov 2018 10:10:59 +0200 Subject: [PATCH 031/140] Bump self_update to fix FreeBSD bug --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d93385ea..99bb1165 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -972,7 +972,7 @@ dependencies = [ [[package]] name = "self_update" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1370,7 +1370,7 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "self_update 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1683,7 +1683,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" -"checksum self_update 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "eca55ac0cc17ff6b2f51da1bdedf13f7c48ae911a87caabe72aa11cd25f2b187" +"checksum self_update 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a4780320350bfbf89c2a174f5ded210f80db4ae9183100767c4898b9487450cc" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" diff --git a/Cargo.toml b/Cargo.toml index ae5a14f6..5c756150 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.6" env_logger = "0.5.13" walkdir = "2.2.6" console = "0.6.2" -self_update = { version = "0.4.4", optional = true } +self_update = { version = "0.4.5", optional = true } [target.'cfg(unix)'.dependencies] nix = "0.11.0" From b370955f799978141447f9d46d594d3b9b1be053 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 16 Nov 2018 10:11:54 +0200 Subject: [PATCH 032/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 99bb1165..475611af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.0.0" +version = "1.0.1" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 5c756150..ee0cb65a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENCE" repository = "https://github.com/r-darwish/topgrade" -version = "1.0.0" +version = "1.0.1" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From 7e5eb87b7d5c2d17548923a3617f98dd6561eb87 Mon Sep 17 00:00:00 2001 From: Nikolai Hellwig Date: Sat, 17 Nov 2018 19:09:46 +0100 Subject: [PATCH 033/140] Adding a new flag for cleaning up old resources (#90) * Adding a new flag to topgrade called "cleanup" If you are using applications like homebrew they may keep a history of packages downloaded. Especially the bigger your number of installed packages for homebrew grows the bigger those directories get. This can quickly add up to a couple of GBs. If this flag is set then the homebrew part also calls "brew cleanup" for cleaning up old resources. Of course this can be add to other calls as well if supported. * Updating readme for new cleanup flag --- README.md | 1 + src/config.rs | 3 +++ src/main.rs | 2 +- src/unix.rs | 5 ++++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 53394972..d34ce7b8 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,7 @@ Just run `topgrade`. It will run the following steps: ## Flags * `-t/--tmux` - Topgrade will launch itself in a new tmux session. This flag has no effect if Topgrade already runs inside tmux. This is useful when using topgrade on remote systems. +* `-c/--cleanup` - Topgrade will instruct package managers to remove old or unused files * `-n/--dry-run` - Print what should be run. * `--no-system` - Skip the system upgrade phase. * `--no-git-repos` - Don't pull custom git repositories. diff --git a/src/config.rs b/src/config.rs index 33531b1f..73896386 100644 --- a/src/config.rs +++ b/src/config.rs @@ -51,6 +51,9 @@ pub struct Opt { #[structopt(short = "t", long = "tmux", help = "Run inside tmux")] pub run_in_tmux: bool, + #[structopt(short = "c", long = "cleanup", help = "Cleanup temporary or old files")] + pub cleanup: bool, + #[structopt(long = "no-system", help = "Don't perform system upgrade")] pub no_system: bool, diff --git a/src/main.rs b/src/main.rs index bc41d3cf..39fbf3a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -240,7 +240,7 @@ fn run() -> Result<(), Error> { #[cfg(unix)] report.push_result(execute( - |terminal| unix::run_homebrew(terminal, opt.dry_run), + |terminal| unix::run_homebrew(terminal, opt.cleanup, opt.dry_run), &mut execution_context, )?); #[cfg(target_os = "freebsd")] diff --git a/src/unix.rs b/src/unix.rs index fa25e969..e1754049 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -52,13 +52,16 @@ pub fn run_fisher(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) } #[must_use] -pub fn run_homebrew(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_homebrew(terminal: &mut Terminal, cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(brew) = which("brew") { terminal.print_separator("Brew"); let inner = || -> Result<(), Error> { Executor::new(&brew, dry_run).arg("update").spawn()?.wait()?.check()?; Executor::new(&brew, dry_run).arg("upgrade").spawn()?.wait()?.check()?; + if cleanup { + Executor::new(&brew, dry_run).arg("cleanup").spawn()?.wait()?.check()?; + } Ok(()) }; From 1b61a07d525d3524eae0f70f8a87e16f94e14f41 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 18 Nov 2018 11:52:37 +0200 Subject: [PATCH 034/140] Remove #[macro_use] where possible (fix #87) --- src/ctrlc/unix.rs | 1 + src/git.rs | 1 + src/main.rs | 15 ++++++--------- src/utils.rs | 1 + src/windows.rs | 1 + 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/ctrlc/unix.rs b/src/ctrlc/unix.rs index 329f807d..46c7c10e 100644 --- a/src/ctrlc/unix.rs +++ b/src/ctrlc/unix.rs @@ -1,3 +1,4 @@ +use lazy_static::lazy_static; use nix::sys::signal; use std::sync::atomic::{AtomicBool, Ordering}; diff --git a/src/git.rs b/src/git.rs index cc6df9d8..08de3b1e 100644 --- a/src/git.rs +++ b/src/git.rs @@ -2,6 +2,7 @@ use super::executor::Executor; use super::terminal::Terminal; use super::utils::{which, Check}; use failure::Error; +use log::{debug, error}; use std::collections::HashSet; use std::io; use std::path::{Path, PathBuf}; diff --git a/src/main.rs b/src/main.rs index 39fbf3a0..77de9cee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,20 +8,17 @@ extern crate toml; extern crate serde_derive; #[macro_use] extern crate structopt; -extern crate serde; -extern crate shellexpand; -#[macro_use] -extern crate log; extern crate console; extern crate env_logger; #[cfg(unix)] -extern crate nix; -#[cfg(unix)] -#[macro_use] extern crate lazy_static; +extern crate log; +#[cfg(unix)] +extern crate nix; #[cfg(feature = "self-update")] -#[macro_use] extern crate self_update; +extern crate serde; +extern crate shellexpand; extern crate walkdir; #[cfg(target_os = "freebsd")] @@ -125,7 +122,7 @@ pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { .bin_name("topgrade") .show_output(false) .show_download_progress(true) - .current_version(cargo_crate_version!()) + .current_version(self_update::cargo_crate_version!()) .no_confirm(true) .build()? .update()?; diff --git a/src/utils.rs b/src/utils.rs index 16efdba8..08b4f64b 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,4 +1,5 @@ use failure::Error; +use log::{debug, error}; use std::ffi::OsStr; use std::fmt::Debug; use std::path::{Path, PathBuf}; diff --git a/src/windows.rs b/src/windows.rs index 4dd7e32e..d1d2bbbc 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -2,6 +2,7 @@ use super::executor::Executor; use super::terminal::Terminal; use super::utils::{self, which, Check}; use failure; +use log::error; use std::path::PathBuf; use std::process::Command; From 7bf4c25fcf778ae1158888765eaa7e5b26e6e364 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 18 Nov 2018 14:25:16 +0200 Subject: [PATCH 035/140] Remove all the macro use --- src/config.rs | 2 ++ src/linux.rs | 1 + src/main.rs | 18 ++++++++---------- src/utils.rs | 1 + 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/config.rs b/src/config.rs index 73896386..4b08a40b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,8 +1,10 @@ use directories::BaseDirs; use failure; +use serde_derive::Deserialize; use shellexpand; use std::collections::BTreeMap; use std::fs; +use structopt::StructOpt; use toml; type Commands = BTreeMap; diff --git a/src/linux.rs b/src/linux.rs index 2d5289e3..8ea353b9 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -2,6 +2,7 @@ use super::executor::Executor; use super::terminal::Terminal; use super::utils::{which, Check}; use failure; +use failure_derive::Fail; use std::fs; use std::path::PathBuf; use walkdir::WalkDir; diff --git a/src/main.rs b/src/main.rs index 77de9cee..c4b46362 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,8 @@ -extern crate directories; -extern crate failure; -extern crate which; -#[macro_use] -extern crate failure_derive; -extern crate toml; -#[macro_use] -extern crate serde_derive; -#[macro_use] -extern crate structopt; extern crate console; +extern crate directories; extern crate env_logger; +extern crate failure; +extern crate failure_derive; #[cfg(unix)] extern crate lazy_static; extern crate log; @@ -18,8 +11,12 @@ extern crate nix; #[cfg(feature = "self-update")] extern crate self_update; extern crate serde; +extern crate serde_derive; extern crate shellexpand; +extern crate structopt; +extern crate toml; extern crate walkdir; +extern crate which; #[cfg(target_os = "freebsd")] mod freebsd; @@ -50,6 +47,7 @@ use self::git::{Git, Repositories}; use self::report::Report; use self::terminal::Terminal; use failure::Error; +use failure_derive::Fail; use std::borrow::Cow; use std::env; use std::io::ErrorKind; diff --git a/src/utils.rs b/src/utils.rs index 08b4f64b..d01cc515 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,4 +1,5 @@ use failure::Error; +use failure_derive::Fail; use log::{debug, error}; use std::ffi::OsStr; use std::fmt::Debug; From a9527371b499dae887225f167abb9edeca46732e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 20 Nov 2018 09:11:44 +0200 Subject: [PATCH 036/140] Update instructions regarding TPM (fix #93) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d34ce7b8..a4d5437b 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,8 @@ Just run `topgrade`. It will run the following steps: * Custom defined paths * *Unix*: Run [zplug](https://github.com/zplug/zplug) update * *Unix*: Run [fisher](https://github.com/jorgebucaran/fisher) -* *Unix*: Upgrade tmux plugins with [TPM](https://github.com/tmux-plugins/tpm) +* *Unix*: Upgrade tmux plugins with [TPM](https://github.com/tmux-plugins/tpm). *Note*: Do not use + the `-b` flag in your configuration as suggested by the TPM readme. * Update Rustup by running `rustup update`. This will also attempt to run `rustup self update` when Rustup is installed inside the home directory. * Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update) * Upgrade Emacs packages (You'll get a better output if you have [Paradox](https://github.com/Malabarba/paradox) installed) From 30259018c5de8764318813cddbdd6e26acce7e23 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 10 Nov 2018 20:22:26 +0200 Subject: [PATCH 037/140] vcpkg suppport (fix #81) --- README.md | 1 + src/generic.rs | 16 ++++++++++++++++ src/main.rs | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/README.md b/README.md index a4d5437b..76b3c30f 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ Just run `topgrade`. It will run the following steps: * Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update) * Upgrade Emacs packages (You'll get a better output if you have [Paradox](https://github.com/Malabarba/paradox) installed) * Upgrade [OCaml packages](https://opam.ocaml.org/) +* Upgrade [vcpkg](https://github.com/Microsoft/vcpkg) globally installed packages * Upgrade Python packages installed using [pipx](https://github.com/cs01/pipx) * Upgrade [R globally installed packages](https://github.com/ankane/jetpack) * Upgrade Vim/Neovim packages. Works with the following plugin frameworks: diff --git a/src/generic.rs b/src/generic.rs index d55ab011..9cbd1b7e 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -161,6 +161,22 @@ pub fn run_opam_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'stat None } +#[must_use] +pub fn run_vcpkg_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + if let Some(vcpkg) = utils::which("vcpkg") { + terminal.print_separator("vcpkg"); + + let success = || -> Result<(), Error> { + Executor::new(&vcpkg, dry_run).args(&["upgrade", "--no-dry-run"]).spawn()?.wait()?.check()?; + Ok(()) + }().is_ok(); + + return Some(("vcpkg", success)); + } + + None +} + #[must_use] pub fn run_pipx_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(pipx) = utils::which("pipx") { diff --git a/src/main.rs b/src/main.rs index c4b46362..2381410d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -322,6 +322,10 @@ fn run() -> Result<(), Error> { |terminal| generic::run_opam_update(terminal, opt.dry_run), &mut execution_context, )?); + report.push_result(execute( + |terminal| generic::run_vcpkg_update(terminal, opt.dry_run), + &mut execution_context, + )?); report.push_result(execute( |terminal| generic::run_pipx_update(terminal, opt.dry_run), &mut execution_context, From 5a7ec6554577981c712d6b63a2a73f69e92001ca Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 20 Nov 2018 14:38:23 +0200 Subject: [PATCH 038/140] Support Void (fix #95) --- README.md | 1 + src/linux.rs | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/README.md b/README.md index 76b3c30f..2482b03f 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Just run `topgrade`. It will run the following steps: * *Debian/Ubuntu*: Run `apt update && apt dist-upgrade` * *Gentoo*: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` * *openSUSE*: Run `zypper refresh && zypper dist-upgrade` + * *Void*: Run `xbps-install -Su` * *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): * *FreeBSD*: Upgrade and audit packages * *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew diff --git a/src/linux.rs b/src/linux.rs index 8ea353b9..ebe93aa1 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -16,6 +16,7 @@ pub enum Distribution { Ubuntu, Gentoo, OpenSuse, + Void, } #[derive(Debug, Fail)] @@ -54,6 +55,10 @@ impl Distribution { return Ok(Distribution::OpenSuse); } + if content.contains("void") { + return Ok(Distribution::Void); + } + if PathBuf::from("/etc/gentoo-release").exists() { return Ok(Distribution::Gentoo); } @@ -77,6 +82,7 @@ impl Distribution { Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, terminal, dry_run), Distribution::Gentoo => upgrade_gentoo(&sudo, terminal, dry_run), Distribution::OpenSuse => upgrade_opensuse(&sudo, terminal, dry_run), + Distribution::Void => upgrade_void(&sudo, terminal, dry_run), }; Some(("System update", success.is_ok())) @@ -170,6 +176,20 @@ fn upgrade_opensuse(sudo: &Option, terminal: &mut Terminal, dry_run: bo Ok(()) } +fn upgrade_void(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { + if let Some(sudo) = &sudo { + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/xbps-install", "-Su"]) + .spawn()? + .wait()? + .check()?; + } else { + terminal.print_warning("No sudo detected. Skipping system upgrade"); + } + + Ok(()) +} + fn upgrade_fedora(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) From 7d5a43486678edcc86fd75b744a60fdb5890210d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Wed, 21 Nov 2018 06:56:41 +0100 Subject: [PATCH 039/140] Rename LICENCE to LICENSE (#96) --- LICENCE => LICENSE | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LICENCE => LICENSE (100%) diff --git a/LICENCE b/LICENSE similarity index 100% rename from LICENCE rename to LICENSE From 7e601f805d9f07fe007dbf0e9ea49ed27cf1cda8 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 25 Nov 2018 13:05:02 +0200 Subject: [PATCH 040/140] Use the self_upgrade version which supports zip (fix #92) --- Cargo.lock | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 3 +++ src/main.rs | 2 +- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 475611af..8d4e042d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,6 +91,24 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "bzip2" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bzip2-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cc" version = "1.0.25" @@ -175,6 +193,14 @@ dependencies = [ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crc32fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-deque" version = "0.6.1" @@ -216,6 +242,11 @@ name = "dtoa" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "either" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "encoding_rs" version = "0.8.10" @@ -782,6 +813,11 @@ name = "pkg-config" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "podio" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "proc-macro2" version = "0.4.20" @@ -973,8 +1009,9 @@ dependencies = [ [[package]] name = "self_update" version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/r-darwish/self_update?branch=zip#1b4d8aa6a882e6d4ba2013c98d34d01ac0191c00" dependencies = [ + "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -983,6 +1020,7 @@ dependencies = [ "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1370,7 +1408,7 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "self_update 0.4.5 (git+https://github.com/r-darwish/self_update?branch=zip)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1572,6 +1610,18 @@ dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "zip" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + [metadata] "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" @@ -1585,6 +1635,8 @@ dependencies = [ "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" "checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" +"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" +"checksum bzip2-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2c5162604199bbb17690ede847eaa6120a3f33d5ab4dcc8e7c25b16d849ae79b" "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" @@ -1594,11 +1646,13 @@ dependencies = [ "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" +"checksum crc32fast 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a8795e4883c14e32604fe28607ae96c921f3377d2a80c46f06a9e6e734c364f4" "checksum crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1" "checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9" "checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" +"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" "checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" @@ -1661,6 +1715,7 @@ dependencies = [ "checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b" "checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" "checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b" @@ -1683,7 +1738,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" -"checksum self_update 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a4780320350bfbf89c2a174f5ded210f80db4ae9183100767c4898b9487450cc" +"checksum self_update 0.4.5 (git+https://github.com/r-darwish/self_update?branch=zip)" = "" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" @@ -1751,3 +1806,4 @@ dependencies = [ "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +"checksum zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00acf1fafb786ff450b6726e5be41ef029142597b47a40ce80f952f1471730a0" diff --git a/Cargo.toml b/Cargo.toml index ee0cb65a..9885afc3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,9 @@ lazy_static = "1.1.0" [profile.release] lto = true +[patch.crates-io] +self_update = { git = "https://github.com/r-darwish/self_update", branch = "zip" } + [features] default = [] diff --git a/src/main.rs b/src/main.rs index 2381410d..9124cbc6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -117,7 +117,7 @@ pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { .repo_owner("r-darwish") .repo_name("topgrade") .target(&target) - .bin_name("topgrade") + .bin_name(if cfg!(windows) { "topgrade.exe" } else { "topgrade" }) .show_output(false) .show_download_progress(true) .current_version(self_update::cargo_crate_version!()) From b266af76887dcc6ff2b008fb42d4a4498260b1f0 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 25 Nov 2018 13:13:47 +0200 Subject: [PATCH 041/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d4e042d..e698adb6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1398,7 +1398,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.0.1" +version = "1.1.0" dependencies = [ "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 9885afc3..31ec7edb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "topgrade" description = "Upgrade all the things" -license-file = "LICENCE" +license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.0.1" +version = "1.1.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] From bbb276089df93740dbb4b182d0f51f31911f0c3c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 26 Nov 2018 14:27:19 +0200 Subject: [PATCH 042/140] Move self-update to a module --- src/main.rs | 48 ++++------------------------------------------ src/self_update.rs | 44 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 44 deletions(-) create mode 100644 src/self_update.rs diff --git a/src/main.rs b/src/main.rs index 9124cbc6..86c8a85e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ extern crate log; #[cfg(unix)] extern crate nix; #[cfg(feature = "self-update")] -extern crate self_update; +extern crate self_update as self_update_crate; extern crate serde; extern crate serde_derive; extern crate shellexpand; @@ -38,6 +38,8 @@ mod generic; mod git; mod node; mod report; +#[cfg(feature = "self-update")] +mod self_update; mod terminal; mod utils; mod vim; @@ -51,11 +53,7 @@ use failure_derive::Fail; use std::borrow::Cow; use std::env; use std::io::ErrorKind; -#[cfg(all(unix, feature = "self-update"))] -use std::os::unix::process::CommandExt; use std::process::exit; -#[cfg(all(unix, feature = "self-update"))] -use std::process::Command; use structopt::StructOpt; #[derive(Fail, Debug)] @@ -105,44 +103,6 @@ where Ok(None) } -#[must_use] -#[cfg(feature = "self-update")] -pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { - terminal.print_separator("Self update"); - #[cfg(unix)] - let current_exe = env::current_exe(); - - let target = self_update::get_target()?; - let result = self_update::backends::github::Update::configure()? - .repo_owner("r-darwish") - .repo_name("topgrade") - .target(&target) - .bin_name(if cfg!(windows) { "topgrade.exe" } else { "topgrade" }) - .show_output(false) - .show_download_progress(true) - .current_version(self_update::cargo_crate_version!()) - .no_confirm(true) - .build()? - .update()?; - - if let self_update::Status::Updated(version) = &result { - println!("\nTopgrade upgraded to {}", version); - } else { - println!("Topgrade is up-to-date"); - } - - #[cfg(unix)] - { - if result.updated() { - terminal.print_warning("Respawning..."); - let err = Command::new(current_exe?).args(env::args().skip(1)).exec(); - Err(err)? - } - } - - Ok(()) -} - fn run() -> Result<(), Error> { ctrlc::set_handler(); @@ -174,7 +134,7 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { if !opt.dry_run { - if let Err(e) = self_update(&mut execution_context.terminal) { + if let Err(e) = self_update::self_update(&mut execution_context.terminal) { execution_context .terminal .print_warning(format!("Self update error: {}", e)); diff --git a/src/self_update.rs b/src/self_update.rs new file mode 100644 index 00000000..7ee17379 --- /dev/null +++ b/src/self_update.rs @@ -0,0 +1,44 @@ +use super::terminal::Terminal; +use failure::Error; +use self_update_crate; +use std::env; +#[cfg(unix)] +use std::os::unix::process::CommandExt; +#[cfg(unix)] +use std::process::Command; + +pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { + terminal.print_separator("Self update"); + #[cfg(unix)] + let current_exe = env::current_exe(); + + let target = self_update_crate::get_target()?; + let result = self_update_crate::backends::github::Update::configure()? + .repo_owner("r-darwish") + .repo_name("topgrade") + .target(&target) + .bin_name(if cfg!(windows) { "topgrade.exe" } else { "topgrade" }) + .show_output(false) + .show_download_progress(true) + .current_version(self_update_crate::cargo_crate_version!()) + .no_confirm(true) + .build()? + .update()?; + + if let self_update_crate::Status::Updated(version) = &result { + println!("\nTopgrade upgraded to {}", version); + } else { + println!("Topgrade is up-to-date"); + } + + #[cfg(unix)] + { + if result.updated() { + terminal.print_warning("Respawning..."); + let err = Command::new(current_exe?).args(env::args().skip(1)).exec(); + Err(err)? + } + } + + Ok(()) +} From f1de5fd5453b8aa02b4fb3e7acaa1549d95bf469 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 26 Nov 2018 14:39:56 +0200 Subject: [PATCH 043/140] Fix Windows build --- src/self_update.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/self_update.rs b/src/self_update.rs index 7ee17379..db706ce8 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -1,6 +1,7 @@ use super::terminal::Terminal; use failure::Error; use self_update_crate; +#[cfg(unix)] use std::env; #[cfg(unix)] use std::os::unix::process::CommandExt; From 09cfb81ba50a686839ea5d175196c4b6b9edf301 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 4 Dec 2018 14:20:16 +0200 Subject: [PATCH 044/140] No need for patched self_update anymore --- Cargo.lock | 8 ++++---- Cargo.toml | 5 +---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e698adb6..b0cf2809 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1008,8 +1008,8 @@ dependencies = [ [[package]] name = "self_update" -version = "0.4.5" -source = "git+https://github.com/r-darwish/self_update?branch=zip#1b4d8aa6a882e6d4ba2013c98d34d01ac0191c00" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1408,7 +1408,7 @@ dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.4.5 (git+https://github.com/r-darwish/self_update?branch=zip)", + "self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1738,7 +1738,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" -"checksum self_update 0.4.5 (git+https://github.com/r-darwish/self_update?branch=zip)" = "" +"checksum self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a91301ec87d3925a64c06f667a2f244cf4edb7bd512b1e0aa72abc1963141e3" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" diff --git a/Cargo.toml b/Cargo.toml index 31ec7edb..13f0779c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.6" env_logger = "0.5.13" walkdir = "2.2.6" console = "0.6.2" -self_update = { version = "0.4.5", optional = true } +self_update = { version = "0.5.0", optional = true } [target.'cfg(unix)'.dependencies] nix = "0.11.0" @@ -30,9 +30,6 @@ lazy_static = "1.1.0" [profile.release] lto = true -[patch.crates-io] -self_update = { git = "https://github.com/r-darwish/self_update", branch = "zip" } - [features] default = [] From 39faab0a128356ea3c14b6714bd67c465f9039e2 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 5 Dec 2018 11:34:08 +0200 Subject: [PATCH 045/140] Stop passing the terminal object --- Cargo.toml | 2 +- src/freebsd.rs | 18 ++-- src/generic.rs | 56 ++++++------ src/git.rs | 6 +- src/linux.rs | 83 ++++++++---------- src/macos.rs | 6 +- src/main.rs | 213 ++++++++++----------------------------------- src/node.rs | 10 +-- src/self_update.rs | 8 +- src/terminal.rs | 86 +++++++++++------- src/tmux.rs | 6 +- src/unix.rs | 18 ++-- src/vim.rs | 10 +-- src/windows.rs | 18 ++-- 14 files changed, 217 insertions(+), 323 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 13f0779c..2f5aefdf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,10 +22,10 @@ env_logger = "0.5.13" walkdir = "2.2.6" console = "0.6.2" self_update = { version = "0.5.0", optional = true } +lazy_static = "1.1.0" [target.'cfg(unix)'.dependencies] nix = "0.11.0" -lazy_static = "1.1.0" [profile.release] lto = true diff --git a/src/freebsd.rs b/src/freebsd.rs index 086dcb4f..cabfe5de 100644 --- a/src/freebsd.rs +++ b/src/freebsd.rs @@ -1,13 +1,13 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::{print_separator, print_warning}; use super::utils::Check; use failure; use std::path::PathBuf; use std::process::Command; #[must_use] -pub fn upgrade_freebsd(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { - terminal.print_separator("FreeBSD Update"); +pub fn upgrade_freebsd(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { + print_separator("FreeBSD Update"); if let Some(sudo) = sudo { let success = || -> Result<(), failure::Error> { @@ -21,18 +21,14 @@ pub fn upgrade_freebsd(sudo: &Option, terminal: &mut Terminal, dry_run: Some(("FreeBSD Update", success)) } else { - terminal.print_warning("No sudo or yay detected. Skipping system upgrade"); + print_warning("No sudo or yay detected. Skipping system upgrade"); None } } #[must_use] -pub fn upgrade_packages( - sudo: &Option, - terminal: &mut Terminal, - dry_run: bool, -) -> Option<(&'static str, bool)> { - terminal.print_separator("FreeBSD Packages"); +pub fn upgrade_packages(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { + print_separator("FreeBSD Packages"); if let Some(sudo) = sudo { let success = || -> Result<(), failure::Error> { @@ -46,7 +42,7 @@ pub fn upgrade_packages( Some(("FreeBSD Packages", success)) } else { - terminal.print_warning("No sudo or yay detected. Skipping package upgrade"); + print_warning("No sudo or yay detected. Skipping package upgrade"); None } } diff --git a/src/generic.rs b/src/generic.rs index 9cbd1b7e..3a08104a 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{self, Check, PathExt}; use directories::BaseDirs; use failure::Error; @@ -9,9 +9,9 @@ use std::process::Command; const EMACS_UPGRADE: &str = include_str!("emacs.el"); #[must_use] -pub fn run_cargo_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_cargo_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(cargo_update) = utils::which("cargo-install-update") { - terminal.print_separator("Cargo"); + print_separator("Cargo"); let success = || -> Result<(), Error> { Executor::new(cargo_update, dry_run) @@ -30,10 +30,10 @@ pub fn run_cargo_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'sta } #[must_use] -pub fn run_gem(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_gem(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(gem) = utils::which("gem") { if base_dirs.home_dir().join(".gem").exists() { - terminal.print_separator("RubyGems"); + print_separator("RubyGems"); let success = || -> Result<(), Error> { Executor::new(&gem, dry_run) @@ -52,10 +52,10 @@ pub fn run_gem(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> } #[must_use] -pub fn run_emacs(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_emacs(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(emacs) = utils::which("emacs") { if let Some(init_file) = base_dirs.home_dir().join(".emacs.d/init.el").if_exists() { - terminal.print_separator("Emacs"); + print_separator("Emacs"); let success = || -> Result<(), Error> { Executor::new(&emacs, dry_run) @@ -80,9 +80,9 @@ pub fn run_emacs(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) - target_os = "netbsd", target_os = "dragonfly" )))] -pub fn run_apm(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_apm(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(apm) = utils::which("apm") { - terminal.print_separator("Atom Package Manager"); + print_separator("Atom Package Manager"); let success = || -> Result<(), Error> { Executor::new(&apm, dry_run) @@ -101,9 +101,9 @@ pub fn run_apm(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, } #[must_use] -pub fn run_rustup(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_rustup(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(rustup) = utils::which("rustup") { - terminal.print_separator("rustup"); + print_separator("rustup"); let success = || -> Result<(), Error> { if rustup.is_descendant_of(base_dirs.home_dir()) { @@ -125,9 +125,9 @@ pub fn run_rustup(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) } #[must_use] -pub fn run_jetpack(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_jetpack(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(jetpack) = utils::which("jetpack") { - terminal.print_separator("Jetpack"); + print_separator("Jetpack"); let success = || -> Result<(), Error> { Executor::new(&jetpack, dry_run) @@ -145,9 +145,9 @@ pub fn run_jetpack(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static s } #[must_use] -pub fn run_opam_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_opam_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(opam) = utils::which("opam") { - terminal.print_separator("OCaml Package Manager"); + print_separator("OCaml Package Manager"); let success = || -> Result<(), Error> { Executor::new(&opam, dry_run).arg("update").spawn()?.wait()?.check()?; @@ -162,12 +162,16 @@ pub fn run_opam_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'stat } #[must_use] -pub fn run_vcpkg_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_vcpkg_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(vcpkg) = utils::which("vcpkg") { - terminal.print_separator("vcpkg"); + print_separator("vcpkg"); let success = || -> Result<(), Error> { - Executor::new(&vcpkg, dry_run).args(&["upgrade", "--no-dry-run"]).spawn()?.wait()?.check()?; + Executor::new(&vcpkg, dry_run) + .args(&["upgrade", "--no-dry-run"]) + .spawn()? + .wait()? + .check()?; Ok(()) }().is_ok(); @@ -178,9 +182,9 @@ pub fn run_vcpkg_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'sta } #[must_use] -pub fn run_pipx_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_pipx_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(pipx) = utils::which("pipx") { - terminal.print_separator("pipx"); + print_separator("pipx"); let success = || -> Result<(), Error> { Executor::new(&pipx, dry_run) @@ -198,8 +202,8 @@ pub fn run_pipx_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'stat } #[must_use] -pub fn run_custom_command(name: &str, command: &str, terminal: &mut Terminal, dry_run: bool) -> Result<(), Error> { - terminal.print_separator(name); +pub fn run_custom_command(name: &str, command: &str, dry_run: bool) -> Result<(), Error> { + print_separator(name); Executor::new("sh", dry_run) .arg("-c") .arg(command) @@ -211,11 +215,7 @@ pub fn run_custom_command(name: &str, command: &str, terminal: &mut Terminal, dr } #[must_use] -pub fn run_composer_update( - base_dirs: &BaseDirs, - terminal: &mut Terminal, - dry_run: bool, -) -> Option<(&'static str, bool)> { +pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(composer) = utils::which("composer") { let composer_home = || -> Result { let output = Command::new(&composer) @@ -227,7 +227,7 @@ pub fn run_composer_update( if let Ok(composer_home) = composer_home { if composer_home.is_descendant_of(base_dirs.home_dir()) { - terminal.print_separator("Composer"); + print_separator("Composer"); let success = || -> Result<(), Error> { Executor::new(&composer, dry_run) diff --git a/src/git.rs b/src/git.rs index 08de3b1e..a167ad28 100644 --- a/src/git.rs +++ b/src/git.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{which, Check}; use failure::Error; use log::{debug, error}; @@ -58,10 +58,10 @@ impl Git { None } - pub fn pull>(&self, path: P, terminal: &mut Terminal, dry_run: bool) -> Option<(String, bool)> { + pub fn pull>(&self, path: P, dry_run: bool) -> Option<(String, bool)> { let path = path.as_ref(); - terminal.print_separator(format!("Pulling {}", path.display())); + print_separator(format!("Pulling {}", path.display())); let git = self.git.as_ref().unwrap(); diff --git a/src/linux.rs b/src/linux.rs index ebe93aa1..204b150a 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::{print_separator, print_warning}; use super::utils::{which, Check}; use failure; use failure_derive::Fail; @@ -67,22 +67,17 @@ impl Distribution { } #[must_use] - pub fn upgrade( - self, - sudo: &Option, - terminal: &mut Terminal, - dry_run: bool, - ) -> Option<(&'static str, bool)> { - terminal.print_separator("System update"); + pub fn upgrade(self, sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { + print_separator("System update"); let success = match self { - Distribution::Arch => upgrade_arch_linux(&sudo, terminal, dry_run), - Distribution::CentOS => upgrade_redhat(&sudo, terminal, dry_run), - Distribution::Fedora => upgrade_fedora(&sudo, terminal, dry_run), - Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, terminal, dry_run), - Distribution::Gentoo => upgrade_gentoo(&sudo, terminal, dry_run), - Distribution::OpenSuse => upgrade_opensuse(&sudo, terminal, dry_run), - Distribution::Void => upgrade_void(&sudo, terminal, dry_run), + Distribution::Arch => upgrade_arch_linux(&sudo, dry_run), + Distribution::CentOS => upgrade_redhat(&sudo, dry_run), + Distribution::Fedora => upgrade_fedora(&sudo, dry_run), + Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, dry_run), + Distribution::Gentoo => upgrade_gentoo(&sudo, dry_run), + Distribution::OpenSuse => upgrade_opensuse(&sudo, dry_run), + Distribution::Void => upgrade_void(&sudo, dry_run), }; Some(("System update", success.is_ok())) @@ -115,11 +110,11 @@ pub fn show_pacnew() { } } -fn upgrade_arch_linux(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_arch_linux(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(yay) = which("yay") { if let Some(python) = which("python") { if python != PathBuf::from("/usr/bin/python") { - terminal.print_warning(format!( + print_warning(format!( "Python detected at {:?}, which is probably not the system Python. It's dangerous to run yay since Python based AUR packages will be installed in the wrong location", python @@ -136,13 +131,13 @@ It's dangerous to run yay since Python based AUR packages will be installed in t .wait()? .check()?; } else { - terminal.print_warning("No sudo or yay detected. Skipping system upgrade"); + print_warning("No sudo or yay detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_redhat(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/yum", "upgrade"]) @@ -150,13 +145,13 @@ fn upgrade_redhat(sudo: &Option, terminal: &mut Terminal, dry_run: bool .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_opensuse(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/zypper", "refresh"]) @@ -170,13 +165,13 @@ fn upgrade_opensuse(sudo: &Option, terminal: &mut Terminal, dry_run: bo .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_void(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/xbps-install", "-Su"]) @@ -184,13 +179,13 @@ fn upgrade_void(sudo: &Option, terminal: &mut Terminal, dry_run: bool) .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_fedora(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/dnf", "upgrade"]) @@ -198,13 +193,13 @@ fn upgrade_fedora(sudo: &Option, terminal: &mut Terminal, dry_run: bool .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_gentoo(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { if let Some(layman) = which("layman") { Executor::new(&sudo, dry_run) @@ -234,13 +229,13 @@ fn upgrade_gentoo(sudo: &Option, terminal: &mut Terminal, dry_run: bool .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } -fn upgrade_debian(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_debian(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/apt", "update"]) @@ -254,17 +249,17 @@ fn upgrade_debian(sudo: &Option, terminal: &mut Terminal, dry_run: bool .wait()? .check()?; } else { - terminal.print_warning("No sudo detected. Skipping system upgrade"); + print_warning("No sudo detected. Skipping system upgrade"); } Ok(()) } #[must_use] -pub fn run_needrestart(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_needrestart(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(needrestart) = which("needrestart") { - terminal.print_separator("Check for needed restarts"); + print_separator("Check for needed restarts"); let success = || -> Result<(), failure::Error> { Executor::new(&sudo, dry_run) @@ -284,9 +279,9 @@ pub fn run_needrestart(sudo: &Option, terminal: &mut Terminal, dry_run: } #[must_use] -pub fn run_fwupdmgr(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_fwupdmgr(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(fwupdmgr) = which("fwupdmgr") { - terminal.print_separator("Firmware upgrades"); + print_separator("Firmware upgrades"); let success = || -> Result<(), failure::Error> { Executor::new(&fwupdmgr, dry_run) @@ -309,9 +304,9 @@ pub fn run_fwupdmgr(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static } #[must_use] -pub fn flatpak_user_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn flatpak_user_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(flatpak) = which("flatpak") { - terminal.print_separator("Flatpak User Packages"); + print_separator("Flatpak User Packages"); let success = || -> Result<(), failure::Error> { Executor::new(&flatpak, dry_run) @@ -329,14 +324,10 @@ pub fn flatpak_user_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&' } #[must_use] -pub fn flatpak_global_update( - sudo: &Option, - terminal: &mut Terminal, - dry_run: bool, -) -> Option<(&'static str, bool)> { +pub fn flatpak_global_update(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(flatpak) = which("flatpak") { - terminal.print_separator("Flatpak Global Packages"); + print_separator("Flatpak Global Packages"); let success = || -> Result<(), failure::Error> { Executor::new(&sudo, dry_run) @@ -355,11 +346,11 @@ pub fn flatpak_global_update( } #[must_use] -pub fn run_snap(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_snap(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(snap) = which("snap") { if PathBuf::from("/var/snapd.socket").exists() { - terminal.print_separator("snap"); + print_separator("snap"); let success = || -> Result<(), failure::Error> { Executor::new(&sudo, dry_run) @@ -380,10 +371,10 @@ pub fn run_snap(sudo: &Option, terminal: &mut Terminal, dry_run: bool) } #[must_use] -pub fn run_etc_update(sudo: &Option, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_etc_update(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(etc_update) = which("etc-update") { - terminal.print_separator("etc-update"); + print_separator("etc-update"); let success = || -> Result<(), failure::Error> { Executor::new(&sudo, dry_run) diff --git a/src/macos.rs b/src/macos.rs index f30f017b..fbffd517 100644 --- a/src/macos.rs +++ b/src/macos.rs @@ -1,11 +1,11 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::Check; use failure; #[must_use] -pub fn upgrade_macos(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { - terminal.print_separator("App Store"); +pub fn upgrade_macos(dry_run: bool) -> Option<(&'static str, bool)> { + print_separator("App Store"); let success = || -> Result<(), failure::Error> { Executor::new("softwareupdate", dry_run) diff --git a/src/main.rs b/src/main.rs index 86c8a85e..1c319878 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,6 @@ extern crate directories; extern crate env_logger; extern crate failure; extern crate failure_derive; -#[cfg(unix)] extern crate lazy_static; extern crate log; #[cfg(unix)] @@ -47,7 +46,6 @@ mod vim; use self::config::Config; use self::git::{Git, Repositories}; use self::report::Report; -use self::terminal::Terminal; use failure::Error; use failure_derive::Fail; use std::borrow::Cow; @@ -55,6 +53,7 @@ use std::env; use std::io::ErrorKind; use std::process::exit; use structopt::StructOpt; +use terminal::*; #[derive(Fail, Debug)] #[fail(display = "A step failed")] @@ -68,16 +67,12 @@ struct NoBaseDirectories; #[fail(display = "Process Interrupted")] pub struct Interrupted; -struct ExecutionContext { - terminal: Terminal, -} - -fn execute<'a, F, M>(func: F, execution_context: &mut ExecutionContext) -> Result, Error> +fn execute<'a, F, M>(func: F) -> Result, Error> where M: Into>, - F: Fn(&mut Terminal) -> Option<(M, bool)>, + F: Fn() -> Option<(M, bool)>, { - while let Some((key, success)) = func(&mut execution_context.terminal) { + while let Some((key, success)) = func() { if success { return Ok(Some((key, success))); } @@ -87,7 +82,7 @@ where ctrlc::set_running(true); } - let should_retry = execution_context.terminal.should_retry(running).map_err(|e| { + let should_retry = should_retry(running).map_err(|e| { if e.kind() == ErrorKind::Interrupted { Error::from(Interrupted) } else { @@ -117,10 +112,6 @@ fn run() -> Result<(), Error> { env_logger::init(); - let mut execution_context = ExecutionContext { - terminal: Terminal::new(), - }; - let base_dirs = directories::BaseDirs::new().ok_or(NoBaseDirectories)?; let git = Git::new(); let mut git_repos = Repositories::new(&git); @@ -134,17 +125,15 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { if !opt.dry_run { - if let Err(e) = self_update::self_update(&mut execution_context.terminal) { - execution_context - .terminal - .print_warning(format!("Self update error: {}", e)); + if let Err(e) = self_update::self_update() { + print_warning(format!("Self update error: {}", e)); } } } if let Some(commands) = config.pre_commands() { for (name, command) in commands { - generic::run_custom_command(&name, &command, &mut execution_context.terminal, opt.dry_run)?; + generic::run_custom_command(&name, &command, opt.dry_run)?; } } @@ -152,10 +141,7 @@ fn run() -> Result<(), Error> { let powershell = windows::Powershell::new(); #[cfg(windows)] - report.push_result(execute( - |terminal| powershell.update_modules(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| powershell.update_modules(opt.dry_run))?); #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); @@ -165,49 +151,28 @@ fn run() -> Result<(), Error> { if !opt.no_system { match &distribution { Ok(distribution) => { - report.push_result(execute( - |terminal| distribution.upgrade(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| distribution.upgrade(&sudo, opt.dry_run))?); } Err(e) => { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute( - |terminal| linux::run_etc_update(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| linux::run_etc_update(&sudo, opt.dry_run))?); } } #[cfg(windows)] - report.push_result(execute( - |terminal| windows::run_chocolatey(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| windows::run_chocolatey(opt.dry_run))?); #[cfg(windows)] - report.push_result(execute( - |terminal| windows::run_scoop(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| windows::run_scoop(opt.dry_run))?); #[cfg(unix)] - report.push_result(execute( - |terminal| unix::run_homebrew(terminal, opt.cleanup, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.dry_run))?); #[cfg(target_os = "freebsd")] - report.push_result(execute( - |terminal| freebsd::upgrade_packages(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.dry_run))?); #[cfg(unix)] - report.push_result(execute( - |terminal| unix::run_nix(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| unix::run_nix(opt.dry_run))?); if !opt.no_emacs { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); @@ -240,80 +205,32 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute( - |terminal| git.pull(&repo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| git.pull(&repo, opt.dry_run))?); } #[cfg(unix)] { - report.push_result(execute( - |terminal| unix::run_zplug(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| unix::run_fisher(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| tmux::run_tpm(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.dry_run))?); } - report.push_result(execute( - |terminal| generic::run_rustup(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_cargo_update(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| generic::run_cargo_update(opt.dry_run))?); if !opt.no_emacs { - report.push_result(execute( - |terminal| generic::run_emacs(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.dry_run))?); } - report.push_result(execute( - |terminal| generic::run_opam_update(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_vcpkg_update(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_pipx_update(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_jetpack(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| vim::upgrade_vim(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| vim::upgrade_neovim(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| node::run_npm_upgrade(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_composer_update(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| node::yarn_global_update(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| generic::run_opam_update(opt.dry_run))?); + report.push_result(execute(|| generic::run_vcpkg_update(opt.dry_run))?); + report.push_result(execute(|| generic::run_pipx_update(opt.dry_run))?); + report.push_result(execute(|| generic::run_jetpack(opt.dry_run))?); + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| node::run_npm_upgrade(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| generic::run_composer_update(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| node::yarn_global_update(opt.dry_run))?); #[cfg(not(any( target_os = "freebsd", @@ -321,92 +238,56 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute( - |terminal| generic::run_apm(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| generic::run_gem(&base_dirs, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| generic::run_apm(opt.dry_run))?); + report.push_result(execute(|| generic::run_gem(&base_dirs, opt.dry_run))?); #[cfg(target_os = "linux")] { - report.push_result(execute( - |terminal| linux::flatpak_user_update(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| linux::flatpak_global_update(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| linux::run_snap(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| linux::flatpak_user_update(opt.dry_run))?); + report.push_result(execute(|| linux::flatpak_global_update(&sudo, opt.dry_run))?); + report.push_result(execute(|| linux::run_snap(&sudo, opt.dry_run))?); } if let Some(commands) = config.commands() { for (name, command) in commands { - report.push_result(execute( - |terminal| { - Some(( - name, - generic::run_custom_command(&name, &command, terminal, opt.dry_run).is_ok(), - )) - }, - &mut execution_context, - )?); + report.push_result(execute(|| { + Some((name, generic::run_custom_command(&name, &command, opt.dry_run).is_ok())) + })?); } } #[cfg(target_os = "linux")] { - report.push_result(execute( - |terminal| linux::run_fwupdmgr(terminal, opt.dry_run), - &mut execution_context, - )?); - report.push_result(execute( - |terminal| linux::run_needrestart(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| linux::run_fwupdmgr(opt.dry_run))?); + report.push_result(execute(|| linux::run_needrestart(&sudo, opt.dry_run))?); } #[cfg(target_os = "macos")] { if !opt.no_system { - report.push_result(execute( - |terminal| macos::upgrade_macos(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| macos::upgrade_macos(opt.dry_run))?); } } #[cfg(target_os = "freebsd")] { if !opt.no_system { - report.push_result(execute( - |terminal| freebsd::upgrade_freebsd(&sudo, terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.dry_run))?); } } #[cfg(windows)] { if !opt.no_system { - report.push_result(execute( - |terminal| powershell.windows_update(terminal, opt.dry_run), - &mut execution_context, - )?); + report.push_result(execute(|| powershell.windows_update(opt.dry_run))?); } } if !report.data().is_empty() { - execution_context.terminal.print_separator("Summary"); + print_separator("Summary"); for (key, succeeded) in report.data() { - execution_context.terminal.print_result(key, *succeeded); + print_result(key, *succeeded); } #[cfg(target_os = "linux")] diff --git a/src/node.rs b/src/node.rs index 7fe58613..b1e9910b 100644 --- a/src/node.rs +++ b/src/node.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{which, Check, PathExt}; use directories::BaseDirs; use failure; @@ -35,11 +35,11 @@ impl NPM { } #[must_use] -pub fn run_npm_upgrade(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_npm_upgrade(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(npm) = which("npm").map(NPM::new) { if let Ok(npm_root) = npm.root() { if npm_root.is_descendant_of(base_dirs.home_dir()) { - terminal.print_separator("Node Package Manager"); + print_separator("Node Package Manager"); let success = npm.upgrade(dry_run).is_ok(); return Some(("NPM", success)); } @@ -49,9 +49,9 @@ pub fn run_npm_upgrade(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: b } #[must_use] -pub fn yarn_global_update(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn yarn_global_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(yarn) = which("yarn") { - terminal.print_separator("Yarn"); + print_separator("Yarn"); let success = || -> Result<(), failure::Error> { Executor::new(&yarn, dry_run) diff --git a/src/self_update.rs b/src/self_update.rs index db706ce8..ec9f71f5 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -1,4 +1,4 @@ -use super::terminal::Terminal; +use super::terminal::*; use failure::Error; use self_update_crate; #[cfg(unix)] @@ -8,8 +8,8 @@ use std::os::unix::process::CommandExt; #[cfg(unix)] use std::process::Command; -pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { - terminal.print_separator("Self update"); +pub fn self_update() -> Result<(), Error> { + print_separator("Self update"); #[cfg(unix)] let current_exe = env::current_exe(); @@ -35,7 +35,7 @@ pub fn self_update(terminal: &mut Terminal) -> Result<(), Error> { #[cfg(unix)] { if result.updated() { - terminal.print_warning("Respawning..."); + print_warning("Respawning..."); let err = Command::new(current_exe?).args(env::args().skip(1)).exec(); Err(err)? } diff --git a/src/terminal.rs b/src/terminal.rs index c5d33ef9..b3cc31cd 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -1,14 +1,20 @@ use console::{style, Term}; +use lazy_static::lazy_static; use std::cmp::{max, min}; use std::io::{self, Write}; +use std::sync::Mutex; -pub struct Terminal { +lazy_static! { + static ref TERMINAL: Mutex = Mutex::new(Terminal::new()); +} + +struct Terminal { width: Option, term: Term, } impl Terminal { - pub fn new() -> Self { + fn new() -> Self { let term = Term::stdout(); Self { width: term.size_checked().map(|(_, w)| w), @@ -16,56 +22,59 @@ impl Terminal { } } - pub fn print_separator>(&mut self, message: P) { + fn print_separator>(&mut self, message: P) { let message = message.as_ref(); match self.width { Some(width) => { - println!( - "{}", - style(format!( - "\n―― {} {:―^border$}", - message, - "", - border = max(2, min(80, width as usize) - 3 - message.len()) - )).bold() - .white() - ); + self.term + .write_fmt(format_args!( + "{}\n", + style(format_args!( + "\n―― {} {:―^border$}", + message, + "", + border = max(2, min(80, width as usize) - 3 - message.len()) + )).bold() + .white() + )).ok(); } None => { - println!("―― {} ――", message); + self.term.write_fmt(format_args!("―― {} ――\n", message)).ok(); } } } #[allow(dead_code)] - pub fn print_warning>(&mut self, message: P) { + fn print_warning>(&mut self, message: P) { let message = message.as_ref(); - println!("{}", style(message).yellow().bold()); + self.term + .write_fmt(format_args!("{}\n", style(message).yellow().bold())) + .ok(); } - pub fn print_result>(&mut self, key: P, succeeded: bool) { + fn print_result>(&mut self, key: P, succeeded: bool) { let key = key.as_ref(); - println!( - "{}: {}", - key, - if succeeded { - style("OK").bold().green() - } else { - style("FAILED").bold().red() - } - ); + self.term + .write_fmt(format_args!( + "{}: {}\n", + key, + if succeeded { + style("OK").bold().green() + } else { + style("FAILED").bold().red() + } + )).ok(); } - pub fn should_retry(&mut self, running: bool) -> Result { + fn should_retry(&mut self, running: bool) -> Result { if self.width.is_none() { return Ok(false); } - println!(); self.term .write_fmt(format_args!( - "{}", + "\n{}", style(format!( "Retry? [y/N] {}", if !running { @@ -85,7 +94,8 @@ impl Terminal { } }; - println!(); + self.term.write_str("\n").ok(); + answer } } @@ -95,3 +105,19 @@ impl Default for Terminal { Self::new() } } + +pub fn should_retry(running: bool) -> Result { + TERMINAL.lock().unwrap().should_retry(running) +} + +pub fn print_separator>(message: P) { + TERMINAL.lock().unwrap().print_separator(message) +} + +pub fn print_warning>(message: P) { + TERMINAL.lock().unwrap().print_warning(message) +} + +pub fn print_result>(key: P, succeeded: bool) { + TERMINAL.lock().unwrap().print_result(key, succeeded) +} diff --git a/src/tmux.rs b/src/tmux.rs index e1286cf1..e7b07cc7 100644 --- a/src/tmux.rs +++ b/src/tmux.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::which; use super::utils::{Check, PathExt}; use directories::BaseDirs; @@ -10,13 +10,13 @@ use std::os::unix::process::CommandExt; use std::path::Path; use std::process::Command; -pub fn run_tpm(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_tpm(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(tpm) = base_dirs .home_dir() .join(".tmux/plugins/tpm/bin/update_plugins") .if_exists() { - terminal.print_separator("tmux plugins"); + print_separator("tmux plugins"); let success = || -> Result<(), Error> { Executor::new(&tpm, dry_run).arg("all").spawn()?.wait()?.check()?; diff --git a/src/unix.rs b/src/unix.rs index e1754049..572a4a21 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -1,13 +1,13 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{which, Check}; use directories::BaseDirs; use failure::Error; -pub fn run_zplug(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { if base_dirs.home_dir().join(".zplug").exists() { - terminal.print_separator("zplug"); + print_separator("zplug"); let success = || -> Result<(), Error> { Executor::new(zsh, dry_run) @@ -25,10 +25,10 @@ pub fn run_zplug(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) - None } -pub fn run_fisher(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_fisher(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(fish) = which("fish") { if base_dirs.home_dir().join(".config/fish/functions/fisher.fish").exists() { - terminal.print_separator("fisher"); + print_separator("fisher"); let success = || -> Result<(), Error> { Executor::new(&fish, dry_run) @@ -52,9 +52,9 @@ pub fn run_fisher(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) } #[must_use] -pub fn run_homebrew(terminal: &mut Terminal, cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_homebrew(cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(brew) = which("brew") { - terminal.print_separator("Brew"); + print_separator("Brew"); let inner = || -> Result<(), Error> { Executor::new(&brew, dry_run).arg("update").spawn()?.wait()?.check()?; @@ -72,10 +72,10 @@ pub fn run_homebrew(terminal: &mut Terminal, cleanup: bool, dry_run: bool) -> Op } #[must_use] -pub fn run_nix(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_nix(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(nix) = which("nix") { if let Some(nix_env) = which("nix-env") { - terminal.print_separator("Nix"); + print_separator("Nix"); let inner = || -> Result<(), Error> { Executor::new(&nix, dry_run) diff --git a/src/vim.rs b/src/vim.rs index 500f9f86..4e63c811 100644 --- a/src/vim.rs +++ b/src/vim.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{which, Check, PathExt}; use directories::BaseDirs; use failure; @@ -82,11 +82,11 @@ fn upgrade( } #[must_use] -pub fn upgrade_vim(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_vim(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(vim) = which("vim") { if let Some(vimrc) = vimrc(&base_dirs) { if let Some(plugin_framework) = PluginFramework::detect(&vimrc) { - terminal.print_separator(&format!("Vim ({:?})", plugin_framework)); + print_separator(&format!("Vim ({:?})", plugin_framework)); let success = upgrade(&vim, &vimrc, plugin_framework, dry_run).is_ok(); return Some(("vim", success)); } @@ -97,11 +97,11 @@ pub fn upgrade_vim(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) } #[must_use] -pub fn upgrade_neovim(base_dirs: &BaseDirs, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_neovim(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(nvim) = which("nvim") { if let Some(nvimrc) = nvimrc(&base_dirs) { if let Some(plugin_framework) = PluginFramework::detect(&nvimrc) { - terminal.print_separator(&format!("Neovim ({:?})", plugin_framework)); + print_separator(&format!("Neovim ({:?})", plugin_framework)); let success = upgrade(&nvim, &nvimrc, plugin_framework, dry_run).is_ok(); return Some(("Neovim", success)); } diff --git a/src/windows.rs b/src/windows.rs index d1d2bbbc..c5338fb3 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -1,5 +1,5 @@ use super::executor::Executor; -use super::terminal::Terminal; +use super::terminal::print_separator; use super::utils::{self, which, Check}; use failure; use log::error; @@ -7,9 +7,9 @@ use std::path::PathBuf; use std::process::Command; #[must_use] -pub fn run_chocolatey(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_chocolatey(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(choco) = utils::which("choco") { - terminal.print_separator("Chocolatey"); + print_separator("Chocolatey"); let success = || -> Result<(), failure::Error> { Executor::new(&choco, dry_run) @@ -27,9 +27,9 @@ pub fn run_chocolatey(terminal: &mut Terminal, dry_run: bool) -> Option<(&'stati } #[must_use] -pub fn run_scoop(terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_scoop(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(scoop) = utils::which("scoop") { - terminal.print_separator("Scoop"); + print_separator("Scoop"); let success = || -> Result<(), failure::Error> { Executor::new(&scoop, dry_run) @@ -91,9 +91,9 @@ impl Powershell { } #[must_use] - pub fn update_modules(&self, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn update_modules(&self, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(powershell) = &self.path { - terminal.print_separator("Powershell Modules Update"); + print_separator("Powershell Modules Update"); let success = || -> Result<(), failure::Error> { Executor::new(&powershell, dry_run) @@ -111,10 +111,10 @@ impl Powershell { } #[must_use] - pub fn windows_update(&self, terminal: &mut Terminal, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn windows_update(&self, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(powershell) = &self.path { if Self::has_command(&powershell, "Install-WindowsUpdate") { - terminal.print_separator("Windows Update"); + print_separator("Windows Update"); let success = || -> Result<(), failure::Error> { Executor::new(&powershell, dry_run) From 2a5f5af934f3d0aa0793f2c9b5d75e74fe8182d2 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 5 Dec 2018 13:29:31 +0200 Subject: [PATCH 046/140] Don't use help in structopt --- src/config.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/config.rs b/src/config.rs index 4b08a40b..aaab2663 100644 --- a/src/config.rs +++ b/src/config.rs @@ -50,27 +50,27 @@ impl Config { #[derive(StructOpt, Debug)] #[structopt(name = "Topgrade")] pub struct Opt { - #[structopt(short = "t", long = "tmux", help = "Run inside tmux")] + /// Run inside tmux + #[structopt(short = "t", long = "tmux")] pub run_in_tmux: bool, - #[structopt(short = "c", long = "cleanup", help = "Cleanup temporary or old files")] + /// Cleanup temporary or old files + #[structopt(short = "c", long = "cleanup")] pub cleanup: bool, - #[structopt(long = "no-system", help = "Don't perform system upgrade")] + /// Don't perform system upgrade + #[structopt(long = "no-system")] pub no_system: bool, - #[structopt( - long = "no-git-repos", - help = "Don't perform updates on configured git repos" - )] + /// Don't perform updates on configured git repos + #[structopt(long = "no-git-repos")] pub no_git_repos: bool, - #[structopt( - long = "no-emacs", - help = "Don't upgrade Emacs packages or configuration files" - )] + /// Don't upgrade Emacs packages or configuration files + #[structopt(long = "no-emacs")] pub no_emacs: bool, - #[structopt(short = "n", long = "dry-run", help = "Print what would be done")] + /// Print what would be done + #[structopt(short = "n", long = "dry-run")] pub dry_run: bool, } From 0500080e401d58d7ce842c6d89ce88e335a47106 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 5 Dec 2018 13:38:18 +0200 Subject: [PATCH 047/140] Add --no-retry (fix #97) --- README.md | 1 + src/config.rs | 4 +++ src/main.rs | 89 +++++++++++++++++++++++++++++---------------------- 3 files changed, 55 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 2482b03f..69e4e78f 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Just run `topgrade`. It will run the following steps: * `--no-system` - Skip the system upgrade phase. * `--no-git-repos` - Don't pull custom git repositories. * `--no-emacs` - Don't upgrade Emacs packages or configuration files. +* `--no-retry` - Don't ask to retry failed steps. ## Customization You can place a configuration file at `~/.config/topgrade.toml` (on macOS `~/Library/Preferences/topgrade.toml`).. Here's an example: diff --git a/src/config.rs b/src/config.rs index aaab2663..4f81036c 100644 --- a/src/config.rs +++ b/src/config.rs @@ -73,4 +73,8 @@ pub struct Opt { /// Print what would be done #[structopt(short = "n", long = "dry-run")] pub dry_run: bool, + + /// Do not ask to retry failed steps + #[structopt(long = "no-retry")] + pub no_retry: bool, } diff --git a/src/main.rs b/src/main.rs index 1c319878..924fc4e0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,7 +67,7 @@ struct NoBaseDirectories; #[fail(display = "Process Interrupted")] pub struct Interrupted; -fn execute<'a, F, M>(func: F) -> Result, Error> +fn execute<'a, F, M>(func: F, no_retry: bool) -> Result, Error> where M: Into>, F: Fn() -> Option<(M, bool)>, @@ -82,7 +82,8 @@ where ctrlc::set_running(true); } - let should_retry = should_retry(running).map_err(|e| { + let should_ask = !running || !no_retry; + let should_retry = should_ask && should_retry(running).map_err(|e| { if e.kind() == ErrorKind::Interrupted { Error::from(Interrupted) } else { @@ -141,7 +142,7 @@ fn run() -> Result<(), Error> { let powershell = windows::Powershell::new(); #[cfg(windows)] - report.push_result(execute(|| powershell.update_modules(opt.dry_run))?); + report.push_result(execute(|| powershell.update_modules(opt.dry_run), opt.no_retry)?); #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); @@ -151,28 +152,28 @@ fn run() -> Result<(), Error> { if !opt.no_system { match &distribution { Ok(distribution) => { - report.push_result(execute(|| distribution.upgrade(&sudo, opt.dry_run))?); + report.push_result(execute(|| distribution.upgrade(&sudo, opt.dry_run), opt.no_retry)?); } Err(e) => { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute(|| linux::run_etc_update(&sudo, opt.dry_run))?); + report.push_result(execute(|| linux::run_etc_update(&sudo, opt.dry_run), opt.no_retry)?); } } #[cfg(windows)] - report.push_result(execute(|| windows::run_chocolatey(opt.dry_run))?); + report.push_result(execute(|| windows::run_chocolatey(opt.dry_run), opt.no_retry)?); #[cfg(windows)] - report.push_result(execute(|| windows::run_scoop(opt.dry_run))?); + report.push_result(execute(|| windows::run_scoop(opt.dry_run), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.dry_run))?); + report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.dry_run), opt.no_retry)?); #[cfg(target_os = "freebsd")] - report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.dry_run))?); + report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.dry_run), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_nix(opt.dry_run))?); + report.push_result(execute(|| unix::run_nix(opt.dry_run), opt.no_retry)?); if !opt.no_emacs { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); @@ -205,32 +206,38 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute(|| git.pull(&repo, opt.dry_run))?); + report.push_result(execute(|| git.pull(&repo, opt.dry_run), opt.no_retry)?); } #[cfg(unix)] { - report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.dry_run), opt.no_retry)?); } - report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| generic::run_cargo_update(opt.dry_run))?); + report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_cargo_update(opt.dry_run), opt.no_retry)?); if !opt.no_emacs { - report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.dry_run), opt.no_retry)?); } - report.push_result(execute(|| generic::run_opam_update(opt.dry_run))?); - report.push_result(execute(|| generic::run_vcpkg_update(opt.dry_run))?); - report.push_result(execute(|| generic::run_pipx_update(opt.dry_run))?); - report.push_result(execute(|| generic::run_jetpack(opt.dry_run))?); - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| node::run_npm_upgrade(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| generic::run_composer_update(&base_dirs, opt.dry_run))?); - report.push_result(execute(|| node::yarn_global_update(opt.dry_run))?); + report.push_result(execute(|| generic::run_opam_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_vcpkg_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_pipx_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_jetpack(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute( + || node::run_npm_upgrade(&base_dirs, opt.dry_run), + opt.no_retry, + )?); + report.push_result(execute( + || generic::run_composer_update(&base_dirs, opt.dry_run), + opt.no_retry, + )?); + report.push_result(execute(|| node::yarn_global_update(opt.dry_run), opt.no_retry)?); #[cfg(not(any( target_os = "freebsd", @@ -238,48 +245,52 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute(|| generic::run_apm(opt.dry_run))?); - report.push_result(execute(|| generic::run_gem(&base_dirs, opt.dry_run))?); + report.push_result(execute(|| generic::run_apm(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_gem(&base_dirs, opt.dry_run), opt.no_retry)?); #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_user_update(opt.dry_run))?); - report.push_result(execute(|| linux::flatpak_global_update(&sudo, opt.dry_run))?); - report.push_result(execute(|| linux::run_snap(&sudo, opt.dry_run))?); + report.push_result(execute(|| linux::flatpak_user_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute( + || linux::flatpak_global_update(&sudo, opt.dry_run), + opt.no_retry, + )?); + report.push_result(execute(|| linux::run_snap(&sudo, opt.dry_run), opt.no_retry)?); } if let Some(commands) = config.commands() { for (name, command) in commands { - report.push_result(execute(|| { - Some((name, generic::run_custom_command(&name, &command, opt.dry_run).is_ok())) - })?); + report.push_result(execute( + || Some((name, generic::run_custom_command(&name, &command, opt.dry_run).is_ok())), + opt.no_retry, + )?); } } #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::run_fwupdmgr(opt.dry_run))?); - report.push_result(execute(|| linux::run_needrestart(&sudo, opt.dry_run))?); + report.push_result(execute(|| linux::run_fwupdmgr(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| linux::run_needrestart(&sudo, opt.dry_run), opt.no_retry)?); } #[cfg(target_os = "macos")] { if !opt.no_system { - report.push_result(execute(|| macos::upgrade_macos(opt.dry_run))?); + report.push_result(execute(|| macos::upgrade_macos(opt.dry_run), opt.no_retry)?); } } #[cfg(target_os = "freebsd")] { if !opt.no_system { - report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.dry_run))?); + report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.dry_run), opt.no_retry)?); } } #[cfg(windows)] { if !opt.no_system { - report.push_result(execute(|| powershell.windows_update(opt.dry_run))?); + report.push_result(execute(|| powershell.windows_update(opt.dry_run), opt.no_retry)?); } } From 4c1d26e120978fc7f3cfaff327bcf327a13b3e1a Mon Sep 17 00:00:00 2001 From: Adam Papai Date: Sun, 9 Dec 2018 16:58:13 +0900 Subject: [PATCH 048/140] Add `--no-vim` flag (#98) Just like we have the `--no-emacs` flag, it would be nice to have the `--no-vim` flag, to avoid the upgrade of the vim/neovim configuration files and packages. --- README.md | 1 + src/config.rs | 4 ++++ src/main.rs | 14 ++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 69e4e78f..33533225 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,7 @@ Just run `topgrade`. It will run the following steps: * `--no-git-repos` - Don't pull custom git repositories. * `--no-emacs` - Don't upgrade Emacs packages or configuration files. * `--no-retry` - Don't ask to retry failed steps. +* `--no-vim` - Don't upgrade Vim/NeoVim packages or configuration files. ## Customization You can place a configuration file at `~/.config/topgrade.toml` (on macOS `~/Library/Preferences/topgrade.toml`).. Here's an example: diff --git a/src/config.rs b/src/config.rs index 4f81036c..8d9043d4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -70,6 +70,10 @@ pub struct Opt { #[structopt(long = "no-emacs")] pub no_emacs: bool, + /// Don't upgrade Vim packages or configuration files + #[structopt(long = "no-vim")] + pub no_vim: bool, + /// Print what would be done #[structopt(short = "n", long = "dry-run")] pub dry_run: bool, diff --git a/src/main.rs b/src/main.rs index 924fc4e0..21b8e819 100644 --- a/src/main.rs +++ b/src/main.rs @@ -179,8 +179,10 @@ fn run() -> Result<(), Error> { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); } - git_repos.insert(base_dirs.home_dir().join(".vim")); - git_repos.insert(base_dirs.home_dir().join(".config/nvim")); + if !opt.no_vim { + git_repos.insert(base_dirs.home_dir().join(".vim")); + git_repos.insert(base_dirs.home_dir().join(".config/nvim")); + } #[cfg(unix)] { @@ -227,8 +229,12 @@ fn run() -> Result<(), Error> { report.push_result(execute(|| generic::run_vcpkg_update(opt.dry_run), opt.no_retry)?); report.push_result(execute(|| generic::run_pipx_update(opt.dry_run), opt.no_retry)?); report.push_result(execute(|| generic::run_jetpack(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run), opt.no_retry)?); + + if !opt.no_vim { + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run), opt.no_retry)?); + } + report.push_result(execute( || node::run_npm_upgrade(&base_dirs, opt.dry_run), opt.no_retry, From f23b6435bfe845c4e6ac5fd4c226f289ccf1730f Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 11 Dec 2018 16:00:19 +0200 Subject: [PATCH 049/140] Try to restore cargo fmt --- appveyor.yml | 2 +- ci/script.sh | 2 +- src/freebsd.rs | 6 ++++-- src/generic.rs | 30 ++++++++++++++++++++---------- src/git.rs | 3 ++- src/linux.rs | 21 ++++++++++++++------- src/macos.rs | 3 ++- src/main.rs | 15 ++++++++------- src/node.rs | 3 ++- src/terminal.rs | 15 ++++++++++----- src/tmux.rs | 6 ++++-- src/unix.rs | 6 ++++-- src/vim.rs | 3 ++- src/windows.rs | 15 ++++++++++----- 14 files changed, 84 insertions(+), 46 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 101e820e..72c518a2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,7 +20,7 @@ install: - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION% - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - rustup component add rustfmt-preview clippy-preview - # - cargo fmt --all -- --check + - cargo fmt --all -- --check - cargo clippy --all-targets --all-features -- -D warnings - rustc -Vv - cargo -V diff --git a/ci/script.sh b/ci/script.sh index 54079325..db416121 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -4,7 +4,7 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { - # cargo fmt --all -- --check + cargo fmt --all -- --check cargo clippy --all-targets --all-features -- -D warnings cross check --target $TARGET cross check --target $TARGET --release diff --git a/src/freebsd.rs b/src/freebsd.rs index cabfe5de..fa2660e1 100644 --- a/src/freebsd.rs +++ b/src/freebsd.rs @@ -17,7 +17,8 @@ pub fn upgrade_freebsd(sudo: &Option, dry_run: bool) -> Option<(&'stati .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); Some(("FreeBSD Update", success)) } else { @@ -38,7 +39,8 @@ pub fn upgrade_packages(sudo: &Option, dry_run: bool) -> Option<(&'stat .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); Some(("FreeBSD Packages", success)) } else { diff --git a/src/generic.rs b/src/generic.rs index 3a08104a..47173e29 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -21,7 +21,8 @@ pub fn run_cargo_update(dry_run: bool) -> Option<(&'static str, bool)> { .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Cargo", success)); } @@ -43,7 +44,8 @@ pub fn run_gem(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, boo .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("RubyGems", success)); } @@ -65,7 +67,8 @@ pub fn run_emacs(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, b .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Emacs", success)); } @@ -92,7 +95,8 @@ pub fn run_apm(dry_run: bool) -> Option<(&'static str, bool)> { .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("apm", success)); } @@ -116,7 +120,8 @@ pub fn run_rustup(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, Executor::new(&rustup, dry_run).arg("update").spawn()?.wait()?.check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("rustup", success)); } @@ -136,7 +141,8 @@ pub fn run_jetpack(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Jetpack", success)); } @@ -153,7 +159,8 @@ pub fn run_opam_update(dry_run: bool) -> Option<(&'static str, bool)> { Executor::new(&opam, dry_run).arg("update").spawn()?.wait()?.check()?; Executor::new(&opam, dry_run).arg("upgrade").spawn()?.wait()?.check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("OPAM", success)); } @@ -173,7 +180,8 @@ pub fn run_vcpkg_update(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("vcpkg", success)); } @@ -193,7 +201,8 @@ pub fn run_pipx_update(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("pipx", success)); } @@ -236,7 +245,8 @@ pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'sta .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Composer", success)); } diff --git a/src/git.rs b/src/git.rs index a167ad28..40d8132d 100644 --- a/src/git.rs +++ b/src/git.rs @@ -81,7 +81,8 @@ impl Git { .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); Some((format!("git: {}", path.display()), success)) } diff --git a/src/linux.rs b/src/linux.rs index 204b150a..bd2a265c 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -99,7 +99,8 @@ pub fn show_pacnew() { .extension() .filter(|ext| ext == &"pacnew" || ext == &"pacsave") .is_some() - }).peekable(); + }) + .peekable(); if iter.peek().is_some() { println!("\nPacman backup configuration files found:"); @@ -269,7 +270,8 @@ pub fn run_needrestart(sudo: &Option, dry_run: bool) -> Option<(&'stati .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Restarts", success)); } @@ -295,7 +297,8 @@ pub fn run_fwupdmgr(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Firmware upgrade", success)); } @@ -315,7 +318,8 @@ pub fn flatpak_user_update(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Flatpak User Packages", success)); } @@ -336,7 +340,8 @@ pub fn flatpak_global_update(sudo: &Option, dry_run: bool) -> Option<(& .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Flatpak Global Packages", success)); } @@ -360,7 +365,8 @@ pub fn run_snap(sudo: &Option, dry_run: bool) -> Option<(&'static str, .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("snap", success)); } @@ -384,7 +390,8 @@ pub fn run_etc_update(sudo: &Option, dry_run: bool) -> Option<(&'static .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("etc-update", success)); } diff --git a/src/macos.rs b/src/macos.rs index fbffd517..ef782771 100644 --- a/src/macos.rs +++ b/src/macos.rs @@ -14,7 +14,8 @@ pub fn upgrade_macos(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); Some(("App Store", success)) } diff --git a/src/main.rs b/src/main.rs index 21b8e819..f8ff3508 100644 --- a/src/main.rs +++ b/src/main.rs @@ -83,13 +83,14 @@ where } let should_ask = !running || !no_retry; - let should_retry = should_ask && should_retry(running).map_err(|e| { - if e.kind() == ErrorKind::Interrupted { - Error::from(Interrupted) - } else { - Error::from(e) - } - })?; + let should_retry = should_ask + && should_retry(running).map_err(|e| { + if e.kind() == ErrorKind::Interrupted { + Error::from(Interrupted) + } else { + Error::from(e) + } + })?; if !should_retry { return Ok(Some((key, success))); diff --git a/src/node.rs b/src/node.rs index b1e9910b..e2ed2ee9 100644 --- a/src/node.rs +++ b/src/node.rs @@ -60,7 +60,8 @@ pub fn yarn_global_update(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("yarn", success)); } diff --git a/src/terminal.rs b/src/terminal.rs index b3cc31cd..4e920de1 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -34,9 +34,11 @@ impl Terminal { message, "", border = max(2, min(80, width as usize) - 3 - message.len()) - )).bold() + )) + .bold() .white() - )).ok(); + )) + .ok(); } None => { self.term.write_fmt(format_args!("―― {} ――\n", message)).ok(); @@ -64,7 +66,8 @@ impl Terminal { } else { style("FAILED").bold().red() } - )).ok(); + )) + .ok(); } fn should_retry(&mut self, running: bool) -> Result { @@ -82,9 +85,11 @@ impl Terminal { } else { "" } - )).yellow() + )) + .yellow() .bold() - )).ok(); + )) + .ok(); let answer = loop { match self.term.read_char()? { diff --git a/src/tmux.rs b/src/tmux.rs index e7b07cc7..bf95f3f4 100644 --- a/src/tmux.rs +++ b/src/tmux.rs @@ -21,7 +21,8 @@ pub fn run_tpm(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, boo let success = || -> Result<(), Error> { Executor::new(&tpm, dry_run).arg("all").spawn()?.wait()?.check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("tmux", success)); } @@ -70,7 +71,8 @@ pub fn run_in_tmux() -> ! { "set", "remain-on-exit", "on", - ]).exec(); + ]) + .exec(); panic!("{:?}", err); } diff --git a/src/unix.rs b/src/unix.rs index 572a4a21..501a15b5 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -16,7 +16,8 @@ pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, b .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("zplug", success)); } @@ -42,7 +43,8 @@ pub fn run_fisher(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("fisher", success)); } diff --git a/src/vim.rs b/src/vim.rs index 4e63c811..da0d4e6b 100644 --- a/src/vim.rs +++ b/src/vim.rs @@ -72,7 +72,8 @@ fn upgrade( "-e", "-s", "-V1", - ]).spawn()? + ]) + .spawn()? .wait()? .check()?; diff --git a/src/windows.rs b/src/windows.rs index c5338fb3..946dba33 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -18,7 +18,8 @@ pub fn run_chocolatey(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Chocolatey", success)); } @@ -43,7 +44,8 @@ pub fn run_scoop(dry_run: bool) -> Option<(&'static str, bool)> { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Scoop", success)); } @@ -69,7 +71,8 @@ impl Powershell { .output()? .check()?; Ok(()) - }().is_ok() + }() + .is_ok() } pub fn profile(&self) -> Option { @@ -102,7 +105,8 @@ impl Powershell { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Powershell Modules Update", success)); } @@ -123,7 +127,8 @@ impl Powershell { .wait()? .check()?; Ok(()) - }().is_ok(); + }() + .is_ok(); return Some(("Windows Update", success)); } From 370310948b25c50c662a54c80fad6903ecbbbaaf Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 11 Dec 2018 16:43:26 +0200 Subject: [PATCH 050/140] Better error model --- src/config.rs | 8 +++-- src/error.rs | 80 ++++++++++++++++++++++++++++++++++++++++++++++ src/executor.rs | 33 +++++++++++-------- src/freebsd.rs | 15 +++++---- src/generic.rs | 10 ++++-- src/git.rs | 2 +- src/linux.rs | 46 +++++++++++--------------- src/macos.rs | 4 +-- src/main.rs | 52 +++++++++++++----------------- src/node.rs | 18 +++++++---- src/self_update.rs | 20 ++++++++---- src/tmux.rs | 9 ++++-- src/unix.rs | 2 +- src/utils.rs | 9 ++---- src/vim.rs | 9 ++---- src/windows.rs | 23 +++++++------ 16 files changed, 216 insertions(+), 124 deletions(-) create mode 100644 src/error.rs diff --git a/src/config.rs b/src/config.rs index 8d9043d4..ff1bcd25 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,6 @@ +use super::error::{Error, ErrorKind}; use directories::BaseDirs; -use failure; +use failure::ResultExt; use serde_derive::Deserialize; use shellexpand; use std::collections::BTreeMap; @@ -17,13 +18,14 @@ pub struct Config { } impl Config { - pub fn read(base_dirs: &BaseDirs) -> Result { + pub fn read(base_dirs: &BaseDirs) -> Result { let config_path = base_dirs.config_dir().join("topgrade.toml"); if !config_path.exists() { return Ok(Default::default()); } - let mut result: Self = toml::from_str(&fs::read_to_string(config_path)?)?; + let mut result: Self = toml::from_str(&fs::read_to_string(config_path).context(ErrorKind::Configuration)?) + .context(ErrorKind::Configuration)?; if let Some(ref mut paths) = &mut result.git_repos { for path in paths.iter_mut() { diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 00000000..d97d0b02 --- /dev/null +++ b/src/error.rs @@ -0,0 +1,80 @@ +use failure::{Backtrace, Context, Fail}; +use std::fmt::{self, Display}; +use std::process::ExitStatus; + +#[derive(Debug)] +pub struct Error { + inner: Context, +} + +#[derive(Copy, Clone, Eq, PartialEq, Debug, Fail)] +pub enum ErrorKind { + #[fail(display = "Error asking the user for retry")] + Retry, + + #[fail(display = "Cannot find the user base directories")] + NoBaseDirectories, + + #[fail(display = "A step failed")] + StepFailed, + + #[fail(display = "Error reading the configuration")] + Configuration, + + #[fail(display = "A custom pre-command failed")] + PreCommand, + + #[fail(display = "{}", _0)] + ProcessFailed(ExitStatus), + + #[fail(display = "Unknown Linux Distribution")] + #[cfg(target_os = "linux")] + UnknownLinuxDistribution, + + #[fail(display = "Detected Python is not the system Python")] + #[cfg(target_os = "linux")] + NotSystemPython, + + #[fail(display = "Process execution failure")] + ProcessExecution, + + #[fail(display = "Self-update failure")] + #[cfg(feature = "self-update")] + SelfUpdate, +} + +impl Fail for Error { + fn cause(&self) -> Option<&Fail> { + self.inner.cause() + } + + fn backtrace(&self) -> Option<&Backtrace> { + self.inner.backtrace() + } +} + +impl Display for Error { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.inner, f) + } +} + +impl Error { + pub fn kind(&self) -> ErrorKind { + *self.inner.get_context() + } +} + +impl From for Error { + fn from(kind: ErrorKind) -> Error { + Error { + inner: Context::new(kind), + } + } +} + +impl From> for Error { + fn from(inner: Context) -> Error { + Error { inner } + } +} diff --git a/src/executor.rs b/src/executor.rs index 9f76af2b..1e0f10c7 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -1,7 +1,7 @@ +use super::error::{Error, ErrorKind}; use super::utils::Check; -use failure; +use failure::ResultExt; use std::ffi::{OsStr, OsString}; -use std::io; use std::path::Path; use std::process::{Child, Command, ExitStatus}; @@ -63,9 +63,9 @@ impl Executor { self } - pub fn spawn(&mut self) -> Result { - match self { - Executor::Wet(c) => c.spawn().map(ExecutorChild::Wet), + pub fn spawn(&mut self) -> Result { + let result = match self { + Executor::Wet(c) => c.spawn().context(ErrorKind::ProcessExecution).map(ExecutorChild::Wet)?, Executor::Dry(c) => { print!( "Dry running: {} {}", @@ -80,9 +80,11 @@ impl Executor { Some(dir) => println!(" in {}", dir.to_string_lossy()), None => println!(), }; - Ok(ExecutorChild::Dry) + ExecutorChild::Dry } - } + }; + + Ok(result) } } @@ -99,11 +101,16 @@ pub enum ExecutorChild { } impl ExecutorChild { - pub fn wait(&mut self) -> Result { - match self { - ExecutorChild::Wet(c) => c.wait().map(ExecutorExitStatus::Wet), - ExecutorChild::Dry => Ok(ExecutorExitStatus::Dry), - } + pub fn wait(&mut self) -> Result { + let result = match self { + ExecutorChild::Wet(c) => c + .wait() + .context(ErrorKind::ProcessExecution) + .map(ExecutorExitStatus::Wet)?, + ExecutorChild::Dry => ExecutorExitStatus::Dry, + }; + + Ok(result) } } @@ -113,7 +120,7 @@ pub enum ExecutorExitStatus { } impl Check for ExecutorExitStatus { - fn check(self) -> Result<(), failure::Error> { + fn check(self) -> Result<(), Error> { match self { ExecutorExitStatus::Wet(e) => e.check(), ExecutorExitStatus::Dry => Ok(()), diff --git a/src/freebsd.rs b/src/freebsd.rs index fa2660e1..b4817ee2 100644 --- a/src/freebsd.rs +++ b/src/freebsd.rs @@ -1,7 +1,8 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::{print_separator, print_warning}; use super::utils::Check; -use failure; +use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -10,7 +11,7 @@ pub fn upgrade_freebsd(sudo: &Option, dry_run: bool) -> Option<(&'stati print_separator("FreeBSD Update"); if let Some(sudo) = sudo { - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(sudo, dry_run) .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) .spawn()? @@ -32,7 +33,7 @@ pub fn upgrade_packages(sudo: &Option, dry_run: bool) -> Option<(&'stat print_separator("FreeBSD Packages"); if let Some(sudo) = sudo { - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(sudo, dry_run) .args(&["/usr/sbin/pkg", "upgrade"]) .spawn()? @@ -49,13 +50,15 @@ pub fn upgrade_packages(sudo: &Option, dry_run: bool) -> Option<(&'stat } } -pub fn audit_packages(sudo: &Option) -> Result<(), failure::Error> { +pub fn audit_packages(sudo: &Option) -> Result<(), Error> { if let Some(sudo) = sudo { println!(); Command::new(sudo) .args(&["/usr/sbin/pkg", "audit", "-Fr"]) - .spawn()? - .wait()?; + .spawn() + .context(ErrorKind::ProcessExecution)? + .wait() + .context(ErrorKind::ProcessExecution)?; } Ok(()) } diff --git a/src/generic.rs b/src/generic.rs index 47173e29..df6b7260 100644 --- a/src/generic.rs +++ b/src/generic.rs @@ -1,8 +1,9 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{self, Check, PathExt}; use directories::BaseDirs; -use failure::Error; +use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -229,9 +230,12 @@ pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'sta let composer_home = || -> Result { let output = Command::new(&composer) .args(&["global", "config", "--absolute", "home"]) - .output()?; + .output() + .context(ErrorKind::ProcessExecution)?; output.status.check()?; - Ok(PathBuf::from(&String::from_utf8(output.stdout)?)) + Ok(PathBuf::from( + &String::from_utf8(output.stdout).context(ErrorKind::ProcessExecution)?, + )) }(); if let Ok(composer_home) = composer_home { diff --git a/src/git.rs b/src/git.rs index 40d8132d..1d3485b8 100644 --- a/src/git.rs +++ b/src/git.rs @@ -1,7 +1,7 @@ +use super::error::Error; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{which, Check}; -use failure::Error; use log::{debug, error}; use std::collections::HashSet; use std::io; diff --git a/src/linux.rs b/src/linux.rs index bd2a265c..6fccefd1 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -1,8 +1,8 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::{print_separator, print_warning}; use super::utils::{which, Check}; -use failure; -use failure_derive::Fail; +use failure::ResultExt; use std::fs; use std::path::PathBuf; use walkdir::WalkDir; @@ -19,17 +19,9 @@ pub enum Distribution { Void, } -#[derive(Debug, Fail)] -#[fail(display = "Unknown Linux Distribution")] -struct UnknownLinuxDistribution; - -#[derive(Debug, Fail)] -#[fail(display = "Detected Python is not the system Python")] -struct NotSystemPython; - impl Distribution { - pub fn detect() -> Result { - let content = fs::read_to_string("/etc/os-release")?; + pub fn detect() -> Result { + let content = fs::read_to_string("/etc/os-release").context(ErrorKind::UnknownLinuxDistribution)?; if content.contains("Arch") | content.contains("Manjaro") | content.contains("Antergos") { return Ok(Distribution::Arch); @@ -63,7 +55,7 @@ impl Distribution { return Ok(Distribution::Gentoo); } - Err(UnknownLinuxDistribution.into()) + Err(ErrorKind::UnknownLinuxDistribution)? } #[must_use] @@ -111,7 +103,7 @@ pub fn show_pacnew() { } } -fn upgrade_arch_linux(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_arch_linux(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(yay) = which("yay") { if let Some(python) = which("python") { if python != PathBuf::from("/usr/bin/python") { @@ -120,7 +112,7 @@ fn upgrade_arch_linux(sudo: &Option, dry_run: bool) -> Result<(), failu It's dangerous to run yay since Python based AUR packages will be installed in the wrong location", python )); - return Err(NotSystemPython.into()); + return Err(ErrorKind::NotSystemPython)?; } } @@ -138,7 +130,7 @@ It's dangerous to run yay since Python based AUR packages will be installed in t Ok(()) } -fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/yum", "upgrade"]) @@ -152,7 +144,7 @@ fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), failure:: Ok(()) } -fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/zypper", "refresh"]) @@ -172,7 +164,7 @@ fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), failure Ok(()) } -fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/xbps-install", "-Su"]) @@ -186,7 +178,7 @@ fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), failure::Er Ok(()) } -fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/dnf", "upgrade"]) @@ -200,7 +192,7 @@ fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), failure:: Ok(()) } -fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { if let Some(layman) = which("layman") { Executor::new(&sudo, dry_run) @@ -236,7 +228,7 @@ fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), failure:: Ok(()) } -fn upgrade_debian(sudo: &Option, dry_run: bool) -> Result<(), failure::Error> { +fn upgrade_debian(sudo: &Option, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/apt", "update"]) @@ -262,7 +254,7 @@ pub fn run_needrestart(sudo: &Option, dry_run: bool) -> Option<(&'stati if let Some(needrestart) = which("needrestart") { print_separator("Check for needed restarts"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&sudo, dry_run) .arg(needrestart) .spawn()? @@ -285,7 +277,7 @@ pub fn run_fwupdmgr(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(fwupdmgr) = which("fwupdmgr") { print_separator("Firmware upgrades"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&fwupdmgr, dry_run) .arg("refresh") .spawn()? @@ -311,7 +303,7 @@ pub fn flatpak_user_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(flatpak) = which("flatpak") { print_separator("Flatpak User Packages"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&flatpak, dry_run) .args(&["update", "--user", "-y"]) .spawn()? @@ -333,7 +325,7 @@ pub fn flatpak_global_update(sudo: &Option, dry_run: bool) -> Option<(& if let Some(flatpak) = which("flatpak") { print_separator("Flatpak Global Packages"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&sudo, dry_run) .args(&[flatpak.to_str().unwrap(), "update", "-y"]) .spawn()? @@ -357,7 +349,7 @@ pub fn run_snap(sudo: &Option, dry_run: bool) -> Option<(&'static str, if PathBuf::from("/var/snapd.socket").exists() { print_separator("snap"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&sudo, dry_run) .args(&[snap.to_str().unwrap(), "refresh"]) .spawn()? @@ -382,7 +374,7 @@ pub fn run_etc_update(sudo: &Option, dry_run: bool) -> Option<(&'static if let Some(etc_update) = which("etc-update") { print_separator("etc-update"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&sudo, dry_run) .arg(&etc_update.to_str().unwrap()) .spawn()? diff --git a/src/macos.rs b/src/macos.rs index ef782771..b4f8a912 100644 --- a/src/macos.rs +++ b/src/macos.rs @@ -1,13 +1,13 @@ +use super::error::Error; use super::executor::Executor; use super::terminal::print_separator; use super::utils::Check; -use failure; #[must_use] pub fn upgrade_macos(dry_run: bool) -> Option<(&'static str, bool)> { print_separator("App Store"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new("softwareupdate", dry_run) .args(&["--install", "--all"]) .spawn()? diff --git a/src/main.rs b/src/main.rs index f8ff3508..e28ecb93 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,6 +32,7 @@ mod windows; mod config; mod ctrlc; +mod error; mod executor; mod generic; mod git; @@ -44,29 +45,17 @@ mod utils; mod vim; use self::config::Config; +use self::error::{Error, ErrorKind}; use self::git::{Git, Repositories}; use self::report::Report; -use failure::Error; -use failure_derive::Fail; +use failure::{Fail, ResultExt}; use std::borrow::Cow; use std::env; -use std::io::ErrorKind; +use std::io; use std::process::exit; use structopt::StructOpt; use terminal::*; -#[derive(Fail, Debug)] -#[fail(display = "A step failed")] -struct StepFailed; - -#[derive(Fail, Debug)] -#[fail(display = "Cannot find the user base directories")] -struct NoBaseDirectories; - -#[derive(Fail, Debug)] -#[fail(display = "Process Interrupted")] -pub struct Interrupted; - fn execute<'a, F, M>(func: F, no_retry: bool) -> Result, Error> where M: Into>, @@ -83,14 +72,7 @@ where } let should_ask = !running || !no_retry; - let should_retry = should_ask - && should_retry(running).map_err(|e| { - if e.kind() == ErrorKind::Interrupted { - Error::from(Interrupted) - } else { - Error::from(e) - } - })?; + let should_retry = should_ask && should_retry(running).context(ErrorKind::Retry)?; if !should_retry { return Ok(Some((key, success))); @@ -114,7 +96,7 @@ fn run() -> Result<(), Error> { env_logger::init(); - let base_dirs = directories::BaseDirs::new().ok_or(NoBaseDirectories)?; + let base_dirs = directories::BaseDirs::new().ok_or(ErrorKind::NoBaseDirectories)?; let git = Git::new(); let mut git_repos = Repositories::new(&git); @@ -135,7 +117,7 @@ fn run() -> Result<(), Error> { if let Some(commands) = config.pre_commands() { for (name, command) in commands { - generic::run_custom_command(&name, &command, opt.dry_run)?; + generic::run_custom_command(&name, &command, opt.dry_run).context(ErrorKind::PreCommand)?; } } @@ -322,7 +304,7 @@ fn run() -> Result<(), Error> { if report.data().iter().all(|(_, succeeded)| *succeeded) { Ok(()) } else { - Err(StepFailed.into()) + Err(ErrorKind::StepFailed)? } } @@ -332,9 +314,21 @@ fn main() { exit(0); } Err(error) => { - if (error.downcast_ref::().is_some()) || (error.downcast_ref::().is_some()) { - } else { - println!("ERROR: {}", error) + let should_print = match error.kind() { + ErrorKind::StepFailed => false, + ErrorKind::Retry => error + .cause() + .and_then(|cause| cause.downcast_ref::()) + .filter(|io_error| io_error.kind() == io::ErrorKind::Interrupted) + .is_none(), + _ => true, + }; + + if should_print { + println!("Error: {}", error); + if let Some(cause) = error.cause() { + println!("Caused by: {}", cause); + } } exit(1); } diff --git a/src/node.rs b/src/node.rs index e2ed2ee9..4e1e50c2 100644 --- a/src/node.rs +++ b/src/node.rs @@ -1,8 +1,9 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{which, Check, PathExt}; use directories::BaseDirs; -use failure; +use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -15,15 +16,20 @@ impl NPM { Self { command } } - fn root(&self) -> Result { - let output = Command::new(&self.command).args(&["root", "-g"]).output()?; + fn root(&self) -> Result { + let output = Command::new(&self.command) + .args(&["root", "-g"]) + .output() + .context(ErrorKind::ProcessExecution)?; output.status.check()?; - Ok(PathBuf::from(&String::from_utf8(output.stdout)?)) + Ok(PathBuf::from( + &String::from_utf8(output.stdout).context(ErrorKind::ProcessExecution)?, + )) } - fn upgrade(&self, dry_run: bool) -> Result<(), failure::Error> { + fn upgrade(&self, dry_run: bool) -> Result<(), Error> { Executor::new(&self.command, dry_run) .args(&["update", "-g"]) .spawn()? @@ -53,7 +59,7 @@ pub fn yarn_global_update(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(yarn) = which("yarn") { print_separator("Yarn"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&yarn, dry_run) .args(&["global", "upgrade", "-s"]) .spawn()? diff --git a/src/self_update.rs b/src/self_update.rs index ec9f71f5..fe5a6ade 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -1,5 +1,6 @@ +use super::error::{Error, ErrorKind}; use super::terminal::*; -use failure::Error; +use failure::ResultExt; use self_update_crate; #[cfg(unix)] use std::env; @@ -13,8 +14,9 @@ pub fn self_update() -> Result<(), Error> { #[cfg(unix)] let current_exe = env::current_exe(); - let target = self_update_crate::get_target()?; - let result = self_update_crate::backends::github::Update::configure()? + let target = self_update_crate::get_target().context(ErrorKind::SelfUpdate)?; + let result = self_update_crate::backends::github::Update::configure() + .context(ErrorKind::SelfUpdate)? .repo_owner("r-darwish") .repo_name("topgrade") .target(&target) @@ -23,8 +25,10 @@ pub fn self_update() -> Result<(), Error> { .show_download_progress(true) .current_version(self_update_crate::cargo_crate_version!()) .no_confirm(true) - .build()? - .update()?; + .build() + .context(ErrorKind::SelfUpdate)? + .update() + .context(ErrorKind::SelfUpdate)?; if let self_update_crate::Status::Updated(version) = &result { println!("\nTopgrade upgraded to {}", version); @@ -36,8 +40,10 @@ pub fn self_update() -> Result<(), Error> { { if result.updated() { print_warning("Respawning..."); - let err = Command::new(current_exe?).args(env::args().skip(1)).exec(); - Err(err)? + let err = Command::new(current_exe.context(ErrorKind::SelfUpdate)?) + .args(env::args().skip(1)) + .exec(); + Err(err).context(ErrorKind::SelfUpdate)? } } diff --git a/src/tmux.rs b/src/tmux.rs index bf95f3f4..cae45dd7 100644 --- a/src/tmux.rs +++ b/src/tmux.rs @@ -1,9 +1,10 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::print_separator; use super::utils::which; use super::utils::{Check, PathExt}; use directories::BaseDirs; -use failure::Error; +use failure::ResultExt; use std::env; use std::io; use std::os::unix::process::CommandExt; @@ -41,8 +42,10 @@ fn has_session(tmux: &Path, session_name: &str) -> Result { fn run_in_session(tmux: &Path, command: &str) -> Result<(), Error> { Command::new(tmux) .args(&["new-window", "-a", "-t", "topgrade:1", command]) - .spawn()? - .wait()? + .spawn() + .context(ErrorKind::ProcessExecution)? + .wait() + .context(ErrorKind::ProcessExecution)? .check()?; Ok(()) diff --git a/src/unix.rs b/src/unix.rs index 501a15b5..4d05a79c 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -2,7 +2,7 @@ use super::executor::Executor; use super::terminal::print_separator; use super::utils::{which, Check}; use directories::BaseDirs; -use failure::Error; +use Error; pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { diff --git a/src/utils.rs b/src/utils.rs index d01cc515..37af057f 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,5 +1,4 @@ -use failure::Error; -use failure_derive::Fail; +use super::error::{Error, ErrorKind}; use log::{debug, error}; use std::ffi::OsStr; use std::fmt::Debug; @@ -7,10 +6,6 @@ use std::path::{Path, PathBuf}; use std::process::{ExitStatus, Output}; use which as which_mod; -#[derive(Fail, Debug)] -#[fail(display = "Process failed")] -pub struct ProcessFailed; - pub trait Check { fn check(self) -> Result<(), Error>; } @@ -20,7 +15,7 @@ impl Check for ExitStatus { if self.success() { Ok(()) } else { - Err(Error::from(ProcessFailed {})) + Err(ErrorKind::ProcessFailed(self))? } } } diff --git a/src/vim.rs b/src/vim.rs index da0d4e6b..73701caa 100644 --- a/src/vim.rs +++ b/src/vim.rs @@ -1,8 +1,8 @@ +use super::error::Error; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{which, Check, PathExt}; use directories::BaseDirs; -use failure; use std::fs; use std::path::PathBuf; @@ -54,12 +54,7 @@ fn nvimrc(base_dirs: &BaseDirs) -> Option { } #[must_use] -fn upgrade( - vim: &PathBuf, - vimrc: &PathBuf, - plugin_framework: PluginFramework, - dry_run: bool, -) -> Result<(), failure::Error> { +fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, dry_run: bool) -> Result<(), Error> { Executor::new(&vim, dry_run) .args(&[ "-N", diff --git a/src/windows.rs b/src/windows.rs index 946dba33..4efbda20 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -1,7 +1,8 @@ +use super::error::{Error, ErrorKind}; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{self, which, Check}; -use failure; +use failure::ResultExt; use log::error; use std::path::PathBuf; use std::process::Command; @@ -11,7 +12,7 @@ pub fn run_chocolatey(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(choco) = utils::which("choco") { print_separator("Chocolatey"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&choco, dry_run) .args(&["upgrade", "all"]) .spawn()? @@ -32,7 +33,7 @@ pub fn run_scoop(dry_run: bool) -> Option<(&'static str, bool)> { if let Some(scoop) = utils::which("scoop") { print_separator("Scoop"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&scoop, dry_run) .args(&["update"]) .spawn()? @@ -65,10 +66,11 @@ impl Powershell { } pub fn has_command(powershell: &PathBuf, command: &str) -> bool { - || -> Result<(), failure::Error> { + || -> Result<(), Error> { Command::new(&powershell) .args(&["-Command", &format!("Get-Command {}", command)]) - .output()? + .output() + .context(ErrorKind::ProcessExecution)? .check()?; Ok(()) }() @@ -77,8 +79,11 @@ impl Powershell { pub fn profile(&self) -> Option { if let Some(powershell) = &self.path { - let result = || -> Result { - let output = Command::new(powershell).args(&["-Command", "echo $profile"]).output()?; + let result = || -> Result { + let output = Command::new(powershell) + .args(&["-Command", "echo $profile"]) + .output() + .context(ErrorKind::ProcessExecution)?; output.status.check()?; Ok(PathBuf::from( String::from_utf8_lossy(&output.stdout).trim().to_string(), @@ -98,7 +103,7 @@ impl Powershell { if let Some(powershell) = &self.path { print_separator("Powershell Modules Update"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&powershell, dry_run) .arg("Update-Module") .spawn()? @@ -120,7 +125,7 @@ impl Powershell { if Self::has_command(&powershell, "Install-WindowsUpdate") { print_separator("Windows Update"); - let success = || -> Result<(), failure::Error> { + let success = || -> Result<(), Error> { Executor::new(&powershell, dry_run) .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) .spawn()? From 5fd38bfe981ec5b763b218df6c1f8af8303a42fe Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 12 Dec 2018 13:05:02 +0200 Subject: [PATCH 051/140] Dependencies bump --- Cargo.lock | 686 ++++++++++++++++++++++++++++++----------------------- Cargo.toml | 20 +- 2 files changed, 404 insertions(+), 302 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b0cf2809..48121c27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -21,10 +21,10 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -32,19 +32,19 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -55,7 +55,7 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -84,7 +84,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -96,17 +96,17 @@ name = "bzip2" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bzip2-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bzip2-sys" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -135,12 +135,12 @@ dependencies = [ [[package]] name = "clicolors-control" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -154,15 +154,15 @@ dependencies = [ [[package]] name = "console" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "clicolors-control 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -174,7 +174,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -182,7 +182,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -195,45 +195,48 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.0.3" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-deque" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-epoch" -version = "0.5.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-utils" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -249,7 +252,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "encoding_rs" -version = "0.8.10" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -257,13 +260,13 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.5.13" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -272,7 +275,7 @@ name = "failure" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -281,28 +284,29 @@ name = "failure_derive" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "filetime" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "flate2" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -350,32 +354,40 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "http" -version = "0.1.13" +name = "heck" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "http" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -387,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "humantime" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -395,27 +407,27 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.13" +version = "0.12.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -425,7 +437,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -440,9 +452,9 @@ name = "hyper-tls" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -467,7 +479,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -492,43 +504,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "lazy_static" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "lazycell" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "lazycell" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "libc" -version = "0.2.43" +version = "0.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libflate" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "lock_api" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -547,11 +551,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -585,7 +589,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -603,7 +607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -616,8 +620,8 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -631,7 +635,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -651,8 +655,8 @@ name = "native-tls" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -660,7 +664,7 @@ dependencies = [ "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -669,33 +673,33 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "nix" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "nodrop" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num_cpus" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -706,8 +710,8 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -722,14 +726,14 @@ version = "0.9.39" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "owning_ref" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -740,19 +744,40 @@ name = "parking_lot" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -762,7 +787,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -820,7 +845,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.20" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -833,10 +858,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -845,7 +870,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -856,11 +881,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_chacha" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_core" version = "0.2.2" @@ -874,9 +926,42 @@ name = "rand_core" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_pcg" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "redox_syscall" -version = "0.1.40" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -884,27 +969,27 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -917,27 +1002,27 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -956,7 +1041,7 @@ dependencies = [ [[package]] name = "ryu" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -977,7 +1062,7 @@ name = "schannel" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -993,7 +1078,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1003,7 +1088,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1012,13 +1097,13 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", - "tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1038,38 +1123,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_urlencoded" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1089,7 +1174,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1102,7 +1187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "string" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1112,30 +1197,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", + "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.17" +version = "0.15.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1144,20 +1230,20 @@ name = "synstructure" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tar" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1172,13 +1258,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1196,8 +1282,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1206,7 +1292,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1222,7 +1308,7 @@ name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1230,30 +1316,31 @@ name = "time" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1261,14 +1348,14 @@ name = "tokio-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-current-thread" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1290,7 +1377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1298,22 +1385,22 @@ name = "tokio-io" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-reactor" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1325,34 +1412,34 @@ name = "tokio-tcp" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-timer" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1360,62 +1447,63 @@ dependencies = [ [[package]] name = "tokio-udp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-uds" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "toml" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "topgrade" version = "1.1.0" dependencies = [ - "console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", - "toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1425,7 +1513,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ucd-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1457,6 +1545,11 @@ name = "unicode-normalization" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unicode-segmentation" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "unicode-width" version = "0.1.5" @@ -1477,7 +1570,7 @@ dependencies = [ [[package]] name = "url" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1520,7 +1613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "walkdir" -version = "2.2.6" +version = "2.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1540,11 +1633,11 @@ dependencies = [ [[package]] name = "which" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1607,7 +1700,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1616,8 +1709,8 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1626,39 +1719,39 @@ dependencies = [ "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" +"checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" +"checksum backtrace 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "18b65ea1161bfb2dd6da6fade5edd4dbd08fba85012123dd333d2fd1b90b2782" "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" +"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" -"checksum bzip2-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2c5162604199bbb17690ede847eaa6120a3f33d5ab4dcc8e7c25b16d849ae79b" +"checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum clicolors-control 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f84dec9bc083ce2503908cd305af98bd363da6f54bf8d4bf0ac14ee749ad5d1" +"checksum clicolors-control 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51872be694bb3bcbd1ea95c6dd467c2c46c6c64d287e1c9084ace7c3116ae9c0" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd48adf136733979b49e15bc3b4c43cc0d3c85ece7bd08e6daa414c6fcb13e6" +"checksum console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ba5561f4d4d89e0f246d4dd83846d96f617e886b96c7aee36e68791c98f89ce" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -"checksum crc32fast 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a8795e4883c14e32604fe28607ae96c921f3377d2a80c46f06a9e6e734c364f4" -"checksum crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1" -"checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9" -"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" +"checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" +"checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" +"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" +"checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5" -"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" +"checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be" +"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" "checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" -"checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f" -"checksum flate2 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3b0c7353385f92079524de3b7116cf99d73947c08a7472774e9b3b04bff3b901" +"checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" +"checksum flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2291c165c8e703ee54ef3055ad6188e3d51108e2ded18e9f2476e774fc5ad3d4" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" @@ -1666,11 +1759,12 @@ dependencies = [ "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed" -"checksum http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "24f58e8c2d8e886055c3ead7b28793e1455270b5fb39650984c224bc538ba581" +"checksum h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac030ae20dee464c5d0f36544d8b914a6bc606da44a57e052d2b0f5dae129e0" +"checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" +"checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" -"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" -"checksum hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)" = "95ffee0d1d30de4313fdaaa485891ce924991d45bbc18adfc8ac5b1639e62fbb" +"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" +"checksum hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd7729fc83d88353415f6816fd4bb00897aa47c7f1506b69060e74e6e3d8e8b" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1679,15 +1773,14 @@ dependencies = [ "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" -"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" -"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0" -"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "21138fc6669f438ed7ae3559d5789a5f0ba32f28c1f0608d1e452b0bb06ee936" -"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" +"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" +"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +"checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74" +"checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" +"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" +"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630" "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" @@ -1699,15 +1792,17 @@ dependencies = [ "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" -"checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" -"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" -"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" +"checksum nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "921f61dc817b379d0834e45d5ec45beaacfae97082090a49c2cf30dcbc30206f" +"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" +"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" +"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" +"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "deb73390ab68d81992bd994d145f697451bb0b54fd39738e72eef32458ad6907" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6" @@ -1716,22 +1811,28 @@ dependencies = [ "checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" -"checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee" +"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b" +"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" +"checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a" +"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" -"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" +"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" +"checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" -"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" +"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" +"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "00a5870d8edc74fc6e1eb58edbd2815d2243e1a2255d6bf9c82a7a875901b5db" +"checksum reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ab52e462d1e15891441aeefadff68bdea005174328ce3da0a314f2ad313ec837" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" +"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" "checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" @@ -1741,62 +1842,63 @@ dependencies = [ "checksum self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a91301ec87d3925a64c06f667a2f244cf4edb7bd512b1e0aa72abc1963141e3" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" -"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" -"checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce" -"checksum serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aaed41d9fb1e2f587201b863356590c90c1157495d811430a0c0325fe8169650" +"checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6" +"checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154" +"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" +"checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" -"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" +"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970" +"checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d77af7242f18c40fd19cb270985930f239ee1646cfb482050bbae9da1d18743b" -"checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311" -"checksum syn 0.15.17 (registry+https://github.com/rust-lang/crates.io-index)" = "3391038ebc3e4ab24eb028cb0ef2f2dc4ba0cbf72ee895ed6a6fad730640b5bc" +"checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" +"checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" +"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum tar 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "83b0d14b53dbfd62681933fadd651e815f99e6084b649e049ab99296e05ab3de" +"checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b" +"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" -"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895" +"checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" -"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c" +"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" "checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" "checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" "checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" -"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018" +"checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5" "checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" -"checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68" -"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e" -"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c" -"checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70" -"checksum toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65" +"checksum tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "56c5556262383032878afad66943926a1d1f0967f17e94bd7764ceceb3b70e7f" +"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" +"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" +"checksum tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "99ce87382f6c1a24b513a72c048b2c8efe66cb5161c9061d00bee510f08dc168" +"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" -"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" +"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" +"checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6" +"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6" "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum walkdir 2.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0ffb549f212c31e19f3667c55a7f515b983a84aef10fd0a4d1f9c125425115f3" +"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" -"checksum which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49c4f580e93079b70ac522e7bdebbe1568c8afa7d8d05ee534ee737ca37d2f51" +"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/Cargo.toml b/Cargo.toml index 2f5aefdf..0337425f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,21 +11,21 @@ exclude = ["doc/screenshot.gif"] directories = "1.0.2" failure = "0.1.3" failure_derive = "0.1.3" -serde = "1.0.80" -serde_derive = "1.0.80" -toml = "0.4.8" -which = "2.0.0" +serde = "1.0.82" +serde_derive = "1.0.82" +toml = "0.4.10" +which = "2.0.1" shellexpand = "1.0.0" -structopt = "0.2.12" +structopt = "0.2.14" log = "0.4.6" -env_logger = "0.5.13" -walkdir = "2.2.6" -console = "0.6.2" +env_logger = "0.6.0" +walkdir = "2.2.7" +console = "0.7.1" self_update = { version = "0.5.0", optional = true } -lazy_static = "1.1.0" +lazy_static = "1.2.0" [target.'cfg(unix)'.dependencies] -nix = "0.11.0" +nix = "0.12.0" [profile.release] lto = true From 365847a49868bc19f045a21a61f4ea0046655948 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 9 Dec 2018 10:30:41 +0200 Subject: [PATCH 052/140] Rust 2018 --- Cargo.toml | 7 ++++--- src/main.rs | 21 +-------------------- src/unix.rs | 2 +- src/utils.rs | 6 +++--- 4 files changed, 9 insertions(+), 27 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0337425f..30d768e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ repository = "https://github.com/r-darwish/topgrade" version = "1.1.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] +edition = "2018" [dependencies] directories = "1.0.2" @@ -14,14 +15,14 @@ failure_derive = "0.1.3" serde = "1.0.82" serde_derive = "1.0.82" toml = "0.4.10" -which = "2.0.1" +which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" structopt = "0.2.14" log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" console = "0.7.1" -self_update = { version = "0.5.0", optional = true } +self_update_crate = { version = "0.5.0", optional = true, package = "self_update" } lazy_static = "1.2.0" [target.'cfg(unix)'.dependencies] @@ -33,4 +34,4 @@ lto = true [features] default = [] -self-update = ["self_update"] +self-update = ["self_update_crate"] diff --git a/src/main.rs b/src/main.rs index e28ecb93..d33122e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,22 +1,3 @@ -extern crate console; -extern crate directories; -extern crate env_logger; -extern crate failure; -extern crate failure_derive; -extern crate lazy_static; -extern crate log; -#[cfg(unix)] -extern crate nix; -#[cfg(feature = "self-update")] -extern crate self_update as self_update_crate; -extern crate serde; -extern crate serde_derive; -extern crate shellexpand; -extern crate structopt; -extern crate toml; -extern crate walkdir; -extern crate which; - #[cfg(target_os = "freebsd")] mod freebsd; #[cfg(target_os = "linux")] @@ -48,13 +29,13 @@ use self::config::Config; use self::error::{Error, ErrorKind}; use self::git::{Git, Repositories}; use self::report::Report; +use self::terminal::*; use failure::{Fail, ResultExt}; use std::borrow::Cow; use std::env; use std::io; use std::process::exit; use structopt::StructOpt; -use terminal::*; fn execute<'a, F, M>(func: F, no_retry: bool) -> Result, Error> where diff --git a/src/unix.rs b/src/unix.rs index 4d05a79c..ed445566 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -1,8 +1,8 @@ +use super::error::Error; use super::executor::Executor; use super::terminal::print_separator; use super::utils::{which, Check}; use directories::BaseDirs; -use Error; pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { diff --git a/src/utils.rs b/src/utils.rs index 37af057f..805bc4d9 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -4,7 +4,7 @@ use std::ffi::OsStr; use std::fmt::Debug; use std::path::{Path, PathBuf}; use std::process::{ExitStatus, Output}; -use which as which_mod; +use which_crate; pub trait Check { fn check(self) -> Result<(), Error>; @@ -49,14 +49,14 @@ impl PathExt for PathBuf { } pub fn which + Debug>(binary_name: T) -> Option { - match which_mod::which(&binary_name) { + match which_crate::which(&binary_name) { Ok(path) => { debug!("Detected {:?} as {:?}", &path, &binary_name); Some(path) } Err(e) => { match e.kind() { - which_mod::ErrorKind::CannotFindBinaryPath => { + which_crate::ErrorKind::CannotFindBinaryPath => { debug!("Cannot find {:?}", &binary_name); } _ => { From 88ab17cfc380fde1784f4742eef414ed46bc6a66 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 12 Dec 2018 13:25:37 +0200 Subject: [PATCH 053/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 48121c27..32028796 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1486,7 +1486,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.1.0" +version = "1.2.0" dependencies = [ "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 30d768e6..2fa29398 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.1.0" +version = "1.2.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From 66c6338b429e0a5f564d8080b9a1e6225bd8ff76 Mon Sep 17 00:00:00 2001 From: Christopher Medlin Date: Sun, 16 Dec 2018 23:22:59 -0800 Subject: [PATCH 054/140] Implement cleanup for Debian based distros (#102) --- src/linux.rs | 20 +++++++++++++++++--- src/main.rs | 5 ++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/linux.rs b/src/linux.rs index 6fccefd1..5f8be0ba 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -59,14 +59,14 @@ impl Distribution { } #[must_use] - pub fn upgrade(self, sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn upgrade(self, sudo: &Option, cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { print_separator("System update"); let success = match self { Distribution::Arch => upgrade_arch_linux(&sudo, dry_run), Distribution::CentOS => upgrade_redhat(&sudo, dry_run), Distribution::Fedora => upgrade_fedora(&sudo, dry_run), - Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, dry_run), + Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, cleanup, dry_run), Distribution::Gentoo => upgrade_gentoo(&sudo, dry_run), Distribution::OpenSuse => upgrade_opensuse(&sudo, dry_run), Distribution::Void => upgrade_void(&sudo, dry_run), @@ -228,7 +228,7 @@ fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { Ok(()) } -fn upgrade_debian(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_debian(sudo: &Option, cleanup: bool, dry_run: bool) -> Result<(), Error> { if let Some(sudo) = &sudo { Executor::new(&sudo, dry_run) .args(&["/usr/bin/apt", "update"]) @@ -241,6 +241,20 @@ fn upgrade_debian(sudo: &Option, dry_run: bool) -> Result<(), Error> { .spawn()? .wait()? .check()?; + + if cleanup { + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/apt", "clean"]) + .spawn()? + .wait()? + .check()?; + + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/apt", "autoremove"]) + .spawn()? + .wait()? + .check()?; + } } else { print_warning("No sudo detected. Skipping system upgrade"); } diff --git a/src/main.rs b/src/main.rs index d33122e2..b0fb4ae4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -116,7 +116,10 @@ fn run() -> Result<(), Error> { if !opt.no_system { match &distribution { Ok(distribution) => { - report.push_result(execute(|| distribution.upgrade(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute( + || distribution.upgrade(&sudo, opt.cleanup, opt.dry_run), + opt.no_retry, + )?); } Err(e) => { println!("Error detecting current distribution: {}", e); From 47a271af47a653b5388b488199de08abc87d6317 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 15 Dec 2018 21:52:21 +0200 Subject: [PATCH 055/140] Modules refactor --- src/main.rs | 24 ++++-------------------- src/{ => steps}/emacs.el | 0 src/{ => steps}/generic.rs | 8 ++++---- src/{ => steps}/git.rs | 8 ++++---- src/steps/mod.rs | 9 +++++++++ src/{ => steps}/node.rs | 8 ++++---- src/{ => steps/os}/freebsd.rs | 8 ++++---- src/{ => steps/os}/linux.rs | 8 ++++---- src/{ => steps/os}/macos.rs | 8 ++++---- src/steps/os/mod.rs | 10 ++++++++++ src/{ => steps/os}/unix.rs | 8 ++++---- src/{ => steps/os}/windows.rs | 8 ++++---- src/{ => steps}/tmux.rs | 9 ++++----- src/{ => steps}/vim.rs | 8 ++++---- 14 files changed, 63 insertions(+), 61 deletions(-) rename src/{ => steps}/emacs.el (100%) rename src/{ => steps}/generic.rs (97%) rename src/{ => steps}/git.rs (95%) create mode 100644 src/steps/mod.rs rename src/{ => steps}/node.rs (92%) rename src/{ => steps/os}/freebsd.rs (91%) rename src/{ => steps/os}/linux.rs (98%) rename src/{ => steps/os}/macos.rs (76%) create mode 100644 src/steps/os/mod.rs rename src/{ => steps/os}/unix.rs (95%) rename src/{ => steps/os}/windows.rs (96%) rename src/{ => steps}/tmux.rs (92%) rename src/{ => steps}/vim.rs (95%) diff --git a/src/main.rs b/src/main.rs index b0fb4ae4..47f71402 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,34 +1,18 @@ -#[cfg(target_os = "freebsd")] -mod freebsd; -#[cfg(target_os = "linux")] -mod linux; -#[cfg(target_os = "macos")] -mod macos; -#[cfg(unix)] -mod tmux; -#[cfg(unix)] -mod unix; -#[cfg(target_os = "windows")] -mod windows; - mod config; mod ctrlc; mod error; mod executor; -mod generic; -mod git; -mod node; mod report; #[cfg(feature = "self-update")] mod self_update; +mod steps; mod terminal; mod utils; -mod vim; use self::config::Config; use self::error::{Error, ErrorKind}; -use self::git::{Git, Repositories}; use self::report::Report; +use self::steps::*; use self::terminal::*; use failure::{Fail, ResultExt}; use std::borrow::Cow; @@ -78,8 +62,8 @@ fn run() -> Result<(), Error> { env_logger::init(); let base_dirs = directories::BaseDirs::new().ok_or(ErrorKind::NoBaseDirectories)?; - let git = Git::new(); - let mut git_repos = Repositories::new(&git); + let git = git::Git::new(); + let mut git_repos = git::Repositories::new(&git); let config = Config::read(&base_dirs)?; let mut report = Report::new(); diff --git a/src/emacs.el b/src/steps/emacs.el similarity index 100% rename from src/emacs.el rename to src/steps/emacs.el diff --git a/src/generic.rs b/src/steps/generic.rs similarity index 97% rename from src/generic.rs rename to src/steps/generic.rs index df6b7260..b20a1aad 100644 --- a/src/generic.rs +++ b/src/steps/generic.rs @@ -1,7 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{self, Check, PathExt}; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{self, Check, PathExt}; use directories::BaseDirs; use failure::ResultExt; use std::path::PathBuf; diff --git a/src/git.rs b/src/steps/git.rs similarity index 95% rename from src/git.rs rename to src/steps/git.rs index 1d3485b8..e0a5e3f1 100644 --- a/src/git.rs +++ b/src/steps/git.rs @@ -1,7 +1,7 @@ -use super::error::Error; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{which, Check}; +use crate::error::Error; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{which, Check}; use log::{debug, error}; use std::collections::HashSet; use std::io; diff --git a/src/steps/mod.rs b/src/steps/mod.rs new file mode 100644 index 00000000..789ab6fd --- /dev/null +++ b/src/steps/mod.rs @@ -0,0 +1,9 @@ +pub mod generic; +pub mod git; +pub mod node; +pub mod os; +#[cfg(unix)] +pub mod tmux; +pub mod vim; + +pub use self::os::*; diff --git a/src/node.rs b/src/steps/node.rs similarity index 92% rename from src/node.rs rename to src/steps/node.rs index 4e1e50c2..f0114415 100644 --- a/src/node.rs +++ b/src/steps/node.rs @@ -1,7 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{which, Check, PathExt}; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; use failure::ResultExt; use std::path::PathBuf; diff --git a/src/freebsd.rs b/src/steps/os/freebsd.rs similarity index 91% rename from src/freebsd.rs rename to src/steps/os/freebsd.rs index b4817ee2..30c0a72c 100644 --- a/src/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -1,7 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::{print_separator, print_warning}; -use super::utils::Check; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::{print_separator, print_warning}; +use crate::utils::Check; use failure::ResultExt; use std::path::PathBuf; use std::process::Command; diff --git a/src/linux.rs b/src/steps/os/linux.rs similarity index 98% rename from src/linux.rs rename to src/steps/os/linux.rs index 5f8be0ba..b92656e7 100644 --- a/src/linux.rs +++ b/src/steps/os/linux.rs @@ -1,7 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::{print_separator, print_warning}; -use super::utils::{which, Check}; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::{print_separator, print_warning}; +use crate::utils::{which, Check}; use failure::ResultExt; use std::fs; use std::path::PathBuf; diff --git a/src/macos.rs b/src/steps/os/macos.rs similarity index 76% rename from src/macos.rs rename to src/steps/os/macos.rs index b4f8a912..184247b3 100644 --- a/src/macos.rs +++ b/src/steps/os/macos.rs @@ -1,7 +1,7 @@ -use super::error::Error; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::Check; +use crate::error::Error; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::Check; #[must_use] pub fn upgrade_macos(dry_run: bool) -> Option<(&'static str, bool)> { diff --git a/src/steps/os/mod.rs b/src/steps/os/mod.rs new file mode 100644 index 00000000..70d59b1c --- /dev/null +++ b/src/steps/os/mod.rs @@ -0,0 +1,10 @@ +#[cfg(target_os = "freebsd")] +pub mod freebsd; +#[cfg(target_os = "linux")] +pub mod linux; +#[cfg(target_os = "macos")] +pub mod macos; +#[cfg(unix)] +pub mod unix; +#[cfg(target_os = "windows")] +pub mod windows; diff --git a/src/unix.rs b/src/steps/os/unix.rs similarity index 95% rename from src/unix.rs rename to src/steps/os/unix.rs index ed445566..de4d34cb 100644 --- a/src/unix.rs +++ b/src/steps/os/unix.rs @@ -1,7 +1,7 @@ -use super::error::Error; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{which, Check}; +use crate::error::Error; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{which, Check}; use directories::BaseDirs; pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { diff --git a/src/windows.rs b/src/steps/os/windows.rs similarity index 96% rename from src/windows.rs rename to src/steps/os/windows.rs index 4efbda20..b40ac55d 100644 --- a/src/windows.rs +++ b/src/steps/os/windows.rs @@ -1,7 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{self, which, Check}; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{self, which, Check}; use failure::ResultExt; use log::error; use std::path::PathBuf; diff --git a/src/tmux.rs b/src/steps/tmux.rs similarity index 92% rename from src/tmux.rs rename to src/steps/tmux.rs index cae45dd7..41e64dfa 100644 --- a/src/tmux.rs +++ b/src/steps/tmux.rs @@ -1,8 +1,7 @@ -use super::error::{Error, ErrorKind}; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::which; -use super::utils::{Check, PathExt}; +use crate::error::{Error, ErrorKind}; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; use failure::ResultExt; use std::env; diff --git a/src/vim.rs b/src/steps/vim.rs similarity index 95% rename from src/vim.rs rename to src/steps/vim.rs index 73701caa..fcbb4699 100644 --- a/src/vim.rs +++ b/src/steps/vim.rs @@ -1,7 +1,7 @@ -use super::error::Error; -use super::executor::Executor; -use super::terminal::print_separator; -use super::utils::{which, Check, PathExt}; +use crate::error::Error; +use crate::executor::Executor; +use crate::terminal::print_separator; +use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; use std::fs; use std::path::PathBuf; From 2f89f77be566952b3a16ef9db4f29ae818467cac Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 17 Dec 2018 10:56:49 +0200 Subject: [PATCH 056/140] Use bold instead of italic in the readme --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 33533225..e60b6234 100644 --- a/README.md +++ b/README.md @@ -29,21 +29,21 @@ Just run `topgrade`. It will run the following steps: * Try to self-upgrade if compiled with this feature. On Unix systems Topgrade will also respawn itself if it was upgraded -* *Linux*: Run the system package manager: - * *Arch*: Run [yay](https://github.com/Jguer/yay) or fall back to pacman - * *CentOS/RHEL*: Run `yum upgrade` - * *Fedora* - Run `dnf upgrade` - * *Debian/Ubuntu*: Run `apt update && apt dist-upgrade` - * *Gentoo*: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` - * *openSUSE*: Run `zypper refresh && zypper dist-upgrade` - * *Void*: Run `xbps-install -Su` -* *Linux*: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): -* *FreeBSD*: Upgrade and audit packages -* *Unix*: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew -* *Unix*: Run `nix upgrade-nix && nix --upgrade`. -* *Windows*: Upgrade Powershell modules -* *Windows*: Upgrade all [Chocolatey](https://chocolatey.org/) packages -* *Windows*: Upgrade all [Scoop](https://scoop.sh) packages +* **Linux**: Run the system package manager: + * **Arch**: Run [yay](https://github.com/Jguer/yay) or fall back to pacman + * **CentOS/RHEL**: Run `yum upgrade` + * **Fedora**: Run `dnf upgrade` + * **Debian/Ubuntu**: Run `apt update && apt dist-upgrade` + * **Gentoo**: Run `layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world` + * **openSUSE**: Run `zypper refresh && zypper dist-upgrade` + * **Void**: Run `xbps-install -Su` +* **Linux**: Run [etc-update](https://dev.gentoo.org/~zmedico/portage/doc/man/etc-update.1.html): +* **FreeBSD**: Upgrade and audit packages +* **Unix**: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew +* **Unix**: Run `nix upgrade-nix && nix --upgrade`. +* **Windows**: Upgrade Powershell modules +* **Windows**: Upgrade all [Chocolatey](https://chocolatey.org/) packages +* **Windows**: Upgrade all [Scoop](https://scoop.sh) packages * Check if the following paths are tracked by Git. If so, pull them: * ~/.emacs.d (Should work whether you use [Spacemacs](http://spacemacs.org/) or a custom configuration) * ~/.zshrc @@ -55,9 +55,9 @@ Just run `topgrade`. It will run the following steps: * ~/.config/openbox * Powershell Profile * Custom defined paths -* *Unix*: Run [zplug](https://github.com/zplug/zplug) update -* *Unix*: Run [fisher](https://github.com/jorgebucaran/fisher) -* *Unix*: Upgrade tmux plugins with [TPM](https://github.com/tmux-plugins/tpm). *Note*: Do not use +* **Unix**: Run [zplug](https://github.com/zplug/zplug) update +* **Unix**: Run [fisher](https://github.com/jorgebucaran/fisher) +* **Unix**: Upgrade tmux plugins with [TPM](https://github.com/tmux-plugins/tpm). *Note*: Do not use the `-b` flag in your configuration as suggested by the TPM readme. * Update Rustup by running `rustup update`. This will also attempt to run `rustup self update` when Rustup is installed inside the home directory. * Run Cargo [install-update](https://github.com/nabijaczleweli/cargo-update) @@ -76,16 +76,16 @@ Just run `topgrade`. It will run the following steps: * Run `composer global update` if Composer's home directory is inside the home directory of the user. * Upgrade Atom packages * Run `gem upgrade --user-install` if `~/.gem` exists -* *Linux*: Update Flatpak packages -* *Linux*: Update snap packages -* *Linux*: Run [fwupdmgr](https://github.com/hughsie/fwupd) to show firmware upgrade. (View +* **Linux**: Update Flatpak packages +* **Linux**: Update snap packages +* **Linux**: Run [fwupdmgr](https://github.com/hughsie/fwupd) to show firmware upgrade. (View only. No upgrades will actually be performed) * Run custom defined commands * Final stage - * *Linux*: Run [needrestart](https://github.com/liske/needrestart) - * *Windows*: Run Windows Update (You'll have to install [PSWindowsUpdate](https://marckean.com/2016/06/01/use-powershell-to-install-windows-updates/)) - * *macOS*: Upgrade App Store applications - * *FreeBSD*: Run `freebsd-upgrade` + * **Linux**: Run [needrestart](https://github.com/liske/needrestart) + * **Windows**: Run Windows Update (You'll have to install [PSWindowsUpdate](https://marckean.com/2016/06/01/use-powershell-to-install-windows-updates/)) + * **macOS**: Upgrade App Store applications + * **FreeBSD**: Run `freebsd-upgrade` ## Flags * `-t/--tmux` - Topgrade will launch itself in a new tmux session. This flag has no effect if From c916b2920d28c929badd4947f1beed367508d1ea Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 17 Dec 2018 11:01:21 +0200 Subject: [PATCH 057/140] Add supported platforms --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index e60b6234..93224edf 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,23 @@ Keeping your system up to date mostly involves invoking more than a single packa usually results in big shell one-liners saved in your shell history. Topgrade tries to solve this problem by detecting which tools you use and run their appropriate package managers. +## Supported Platforms +Topgrade should probably work on whichever platform it can be build. The real question is whether +Topgrade knows that platform and can utilize its unique features, such as the operating system's +pacakge manager. Topgrade is tested on and knows the following platforms: + +* Linux + * Arch + * CentOS/RHEL + * Fedora + * Debian/Ubuntu + * Gentoo + * openSUSE + * Void +* FreeBSD +* macOS +* Windows + ## Installation Arch Linux users can use the [AUR](https://aur.archlinux.org/packages/topgrade/) package. From 83b6f9ace41e17401f0b7af318963984b4eb9970 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 17 Dec 2018 10:53:05 +0200 Subject: [PATCH 058/140] Run valet install after compose update (fix #99) --- README.md | 3 ++- src/steps/generic.rs | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 93224edf..8009dc99 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,8 @@ Just run `topgrade`. It will run the following steps: * Node * Run `yarn global update` if yarn is installed. * Run `npm update -g` if NPM is installed and `npm root -g` is a path inside your home directory. -* Run `composer global update` if Composer's home directory is inside the home directory of the user. +* Run `composer global update` if Composer's home directory is inside the home directory of the + user. Run `valet install` after. * Upgrade Atom packages * Run `gem upgrade --user-install` if `~/.gem` exists * **Linux**: Update Flatpak packages diff --git a/src/steps/generic.rs b/src/steps/generic.rs index b20a1aad..a716c9f6 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -248,6 +248,11 @@ pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'sta .spawn()? .wait()? .check()?; + + if let Some(valet) = utils::which("valet") { + Executor::new(&valet, dry_run).arg("install").spawn()?.wait()?.check()?; + } + Ok(()) }() .is_ok(); From badc6b665b532e8beea7373436a12c19d2fc0670 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 10:47:45 +0200 Subject: [PATCH 059/140] Implement cleanup for Pacman --- src/steps/os/linux.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index b92656e7..15f6a386 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -63,7 +63,7 @@ impl Distribution { print_separator("System update"); let success = match self { - Distribution::Arch => upgrade_arch_linux(&sudo, dry_run), + Distribution::Arch => upgrade_arch_linux(&sudo, cleanup, dry_run), Distribution::CentOS => upgrade_redhat(&sudo, dry_run), Distribution::Fedora => upgrade_fedora(&sudo, dry_run), Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, cleanup, dry_run), @@ -103,7 +103,7 @@ pub fn show_pacnew() { } } -fn upgrade_arch_linux(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_arch_linux(sudo: &Option, cleanup: bool, dry_run: bool) -> Result<(), Error> { if let Some(yay) = which("yay") { if let Some(python) = which("python") { if python != PathBuf::from("/usr/bin/python") { @@ -127,6 +127,16 @@ It's dangerous to run yay since Python based AUR packages will be installed in t print_warning("No sudo or yay detected. Skipping system upgrade"); } + if cleanup { + if let Some(sudo) = &sudo { + Executor::new(&sudo, dry_run) + .args(&["/usr/bin/pacman", "-Scc"]) + .spawn()? + .wait()? + .check()?; + } + } + Ok(()) } From ee54107d2a3f5386859b489ff59dbb3b85809456 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 13:17:53 +0200 Subject: [PATCH 060/140] Print the changelog when updating --- Cargo.lock | 6 +++--- Cargo.toml | 3 +++ src/main.rs | 3 +++ src/self_update.rs | 10 ++++++---- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32028796..25391333 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1094,7 +1094,7 @@ dependencies = [ [[package]] name = "self_update" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/r-darwish/self_update?branch=github-extended#e0408201c5ad575a6a4b70e49882a0a5f6a213d6" dependencies = [ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1496,7 +1496,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)", "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1839,7 +1839,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" -"checksum self_update 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a91301ec87d3925a64c06f667a2f244cf4edb7bd512b1e0aa72abc1963141e3" +"checksum self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)" = "" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6" diff --git a/Cargo.toml b/Cargo.toml index 2fa29398..a006ad0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,9 @@ nix = "0.12.0" [profile.release] lto = true +[patch.crates-io] +self_update = { git = "https://github.com/r-darwish/self_update", branch = "github-extended" } + [features] default = [] diff --git a/src/main.rs b/src/main.rs index 47f71402..00054bbb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -76,6 +76,9 @@ fn run() -> Result<(), Error> { if !opt.dry_run { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); + if let Some(cause) = e.cause() { + print_warning(format!("Caused by: {}", cause)); + } } } } diff --git a/src/self_update.rs b/src/self_update.rs index fe5a6ade..32108966 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -2,6 +2,7 @@ use super::error::{Error, ErrorKind}; use super::terminal::*; use failure::ResultExt; use self_update_crate; +use self_update_crate::backends::github::{GitHubUpdateStatus, Update}; #[cfg(unix)] use std::env; #[cfg(unix)] @@ -15,7 +16,7 @@ pub fn self_update() -> Result<(), Error> { let current_exe = env::current_exe(); let target = self_update_crate::get_target().context(ErrorKind::SelfUpdate)?; - let result = self_update_crate::backends::github::Update::configure() + let result = Update::configure() .context(ErrorKind::SelfUpdate)? .repo_owner("r-darwish") .repo_name("topgrade") @@ -27,11 +28,12 @@ pub fn self_update() -> Result<(), Error> { .no_confirm(true) .build() .context(ErrorKind::SelfUpdate)? - .update() + .update2() .context(ErrorKind::SelfUpdate)?; - if let self_update_crate::Status::Updated(version) = &result { - println!("\nTopgrade upgraded to {}", version); + if let GitHubUpdateStatus::Updated(release) = &result { + println!("\nTopgrade upgraded to {}:\n", release.version()); + println!("{}", release.body); } else { println!("Topgrade is up-to-date"); } From 8e3727c73f2edaaffc3cacbc8a7d52d203246a1e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 13:23:42 +0200 Subject: [PATCH 061/140] Do not check for self upgrade if already upgraded --- src/main.rs | 2 +- src/self_update.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 00054bbb..d07e9216 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,7 +73,7 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { - if !opt.dry_run { + if !opt.dry_run && !env::var("TOPGRADE_NO_SELF_UPGRADE").is_ok() { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); if let Some(cause) = e.cause() { diff --git a/src/self_update.rs b/src/self_update.rs index 32108966..8b461246 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -44,6 +44,7 @@ pub fn self_update() -> Result<(), Error> { print_warning("Respawning..."); let err = Command::new(current_exe.context(ErrorKind::SelfUpdate)?) .args(env::args().skip(1)) + .env("TOPGRADE_NO_SELF_UPGRADE", "") .exec(); Err(err).context(ErrorKind::SelfUpdate)? } From 6ee2f8ace296959c0c1bf104ffe21650ac28c9ee Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 13:26:10 +0200 Subject: [PATCH 062/140] Dependencies bump --- Cargo.lock | 111 ++++++++++++++++++++++++++++------------------------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 25391333..01dfe3e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,7 +21,7 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -37,24 +37,30 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "autocfg" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -105,13 +111,13 @@ name = "bzip2-sys" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -203,19 +209,19 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-epoch" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -275,7 +281,7 @@ name = "failure" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -286,7 +292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -376,7 +382,7 @@ dependencies = [ [[package]] name = "heck" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -407,7 +413,7 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.18" +version = "0.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -420,7 +426,7 @@ dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -443,7 +449,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -454,7 +460,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -588,7 +594,7 @@ name = "miniz-sys" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -605,7 +611,7 @@ name = "miniz_oxide_c_api" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -658,9 +664,9 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -683,7 +689,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -704,7 +710,7 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.15" +version = "0.10.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -712,7 +718,7 @@ dependencies = [ "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -722,10 +728,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.39" +version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -789,7 +795,7 @@ dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1010,7 +1016,7 @@ dependencies = [ "encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1028,7 +1034,7 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1133,7 +1139,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1209,15 +1215,15 @@ name = "structopt-derive" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.22" +version = "0.15.23" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1232,7 +1238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1313,7 +1319,7 @@ dependencies = [ [[package]] name = "time" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1425,7 +1431,7 @@ name = "tokio-threadpool" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1712,17 +1718,18 @@ dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "18b65ea1161bfb2dd6da6fade5edd4dbd08fba85012123dd333d2fd1b90b2782" -"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" +"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" +"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcce89e5ad5c8949caa9434501f7b55415b3e7ad5270cb88c75a8d35e8f1279" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" @@ -1730,7 +1737,7 @@ dependencies = [ "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" -"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" +"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51872be694bb3bcbd1ea95c6dd467c2c46c6c64d287e1c9084ace7c3116ae9c0" @@ -1740,8 +1747,8 @@ dependencies = [ "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" -"checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" -"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" +"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" +"checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" "checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" @@ -1760,11 +1767,11 @@ dependencies = [ "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" "checksum h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac030ae20dee464c5d0f36544d8b914a6bc606da44a57e052d2b0f5dae129e0" -"checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" +"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd7729fc83d88353415f6816fd4bb00897aa47c7f1506b69060e74e6e3d8e8b" +"checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1795,9 +1802,9 @@ dependencies = [ "checksum nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "921f61dc817b379d0834e45d5ec45beaacfae97082090a49c2cf30dcbc30206f" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" -"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" "checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" @@ -1830,7 +1837,7 @@ dependencies = [ "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ab52e462d1e15891441aeefadff68bdea005174328ce3da0a314f2ad313ec837" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" +"checksum rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" @@ -1855,7 +1862,7 @@ dependencies = [ "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" +"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" @@ -1865,7 +1872,7 @@ dependencies = [ "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" +"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" "checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" From a0429fb917009dfe80f3f8256181a78e4ad8ce0f Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 13:26:46 +0200 Subject: [PATCH 063/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01dfe3e8..f835a929 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1492,7 +1492,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.2.0" +version = "1.3.0" dependencies = [ "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index a006ad0f..f7d36b19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.2.0" +version = "1.3.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From 28e8ec79e1f52ce7a77bc4d09a39327eabe49e74 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 23 Dec 2018 13:30:24 +0200 Subject: [PATCH 064/140] Make clippy happy --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index d07e9216..4c30014b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,7 +73,7 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { - if !opt.dry_run && !env::var("TOPGRADE_NO_SELF_UPGRADE").is_ok() { + if !opt.dry_run && env::var("TOPGRADE_NO_SELF_UPGRADE").is_err() { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); if let Some(cause) = e.cause() { From ded8041b1df40eba40d5254a48b2bfea4f912309 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 24 Dec 2018 10:09:46 +0200 Subject: [PATCH 065/140] No need for serde_derive in Rust 2018 --- Cargo.lock | 4 +++- Cargo.toml | 3 +-- src/config.rs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f835a929..fb09bdf4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,6 +1131,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "serde" version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "serde_derive" @@ -1504,7 +1507,6 @@ dependencies = [ "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)", "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index f7d36b19..eb5270ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,8 +12,7 @@ edition = "2018" directories = "1.0.2" failure = "0.1.3" failure_derive = "0.1.3" -serde = "1.0.82" -serde_derive = "1.0.82" +serde = { version = "1.0.82", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" diff --git a/src/config.rs b/src/config.rs index ff1bcd25..a8da781a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,7 +1,7 @@ use super::error::{Error, ErrorKind}; use directories::BaseDirs; use failure::ResultExt; -use serde_derive::Deserialize; +use serde::Deserialize; use shellexpand; use std::collections::BTreeMap; use std::fs; From 23ae157c72c3a84ea84b4ee0c5cb07152b353351 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 26 Dec 2018 23:12:20 +0200 Subject: [PATCH 066/140] Run brew cask upgrade (fix #103) --- src/steps/os/unix.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index de4d34cb..57c23443 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -61,6 +61,11 @@ pub fn run_homebrew(cleanup: bool, dry_run: bool) -> Option<(&'static str, bool) let inner = || -> Result<(), Error> { Executor::new(&brew, dry_run).arg("update").spawn()?.wait()?.check()?; Executor::new(&brew, dry_run).arg("upgrade").spawn()?.wait()?.check()?; + Executor::new(&brew, dry_run) + .args(&["cask", "upgrade"]) + .spawn()? + .wait()? + .check()?; if cleanup { Executor::new(&brew, dry_run).arg("cleanup").spawn()?.wait()?.check()?; } From 957d73c63498f96c677cb424ddb21fef6def8cd7 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 13:26:17 +0200 Subject: [PATCH 067/140] Don't pass dry_run as a boolean to functions --- src/config.rs | 3 +- src/executor.rs | 73 +++++++++++++++++++++---- src/main.rs | 74 ++++++++++++------------- src/steps/generic.rs | 69 ++++++++++++----------- src/steps/git.rs | 10 ++-- src/steps/node.rs | 16 +++--- src/steps/os/freebsd.rs | 8 +-- src/steps/os/linux.rs | 118 ++++++++++++++++++++++------------------ src/steps/os/macos.rs | 4 +- src/steps/os/unix.rs | 40 ++++++-------- src/steps/os/windows.rs | 18 +++--- src/steps/tmux.rs | 6 +- src/steps/vim.rs | 14 ++--- 13 files changed, 257 insertions(+), 196 deletions(-) diff --git a/src/config.rs b/src/config.rs index a8da781a..2acc8f4e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,4 +1,5 @@ use super::error::{Error, ErrorKind}; +use super::executor::RunType; use directories::BaseDirs; use failure::ResultExt; use serde::Deserialize; @@ -78,7 +79,7 @@ pub struct Opt { /// Print what would be done #[structopt(short = "n", long = "dry-run")] - pub dry_run: bool, + pub run_type: RunType, /// Do not ask to retry failed steps #[structopt(long = "no-retry")] diff --git a/src/executor.rs b/src/executor.rs index 1e0f10c7..7e958f75 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -1,27 +1,71 @@ +//! Utilities for command execution use super::error::{Error, ErrorKind}; use super::utils::Check; use failure::ResultExt; use std::ffi::{OsStr, OsString}; use std::path::Path; use std::process::{Child, Command, ExitStatus}; +use std::str::{FromStr, ParseBoolError}; +/// An enum telling whether Topgrade should perform dry runs or actually perform the steps. +#[derive(Clone, Copy, Debug)] +pub enum RunType { + /// Executing commands will just print the command with its argument. + Dry, + + /// Executing commands will perform actual execution. + Wet, +} + +impl RunType { + /// Create a new instance from a boolean telling whether to dry run. + fn new(dry_run: bool) -> Self { + if dry_run { + RunType::Dry + } else { + RunType::Wet + } + } + + /// Create an instance of `Executor` that should run `program`. + pub fn execute>(self, program: S) -> Executor { + match self { + RunType::Dry => Executor::Dry(DryCommand { + program: program.as_ref().into(), + ..Default::default() + }), + RunType::Wet => Executor::Wet(Command::new(program)), + } + } + + #[cfg(feature = "self-update")] + /// Tells whether we're performing a dry run. + pub fn dry(self) -> bool { + match self { + RunType::Dry => true, + RunType::Wet => false, + } + } +} + +impl FromStr for RunType { + type Err = ParseBoolError; + + fn from_str(s: &str) -> Result { + Ok(Self::new(bool::from_str(s)?)) + } +} + +/// An enum providing a similar interface to `std::process::Command`. +/// If the enum is set to `Wet`, execution will be performed with `std::process::Command`. +/// If the enum is set to `Dry`, execution will just print the command with its arguments. pub enum Executor { Wet(Command), Dry(DryCommand), } impl Executor { - pub fn new>(program: S, dry: bool) -> Self { - if dry { - Executor::Dry(DryCommand { - program: program.as_ref().into(), - ..Default::default() - }) - } else { - Executor::Wet(Command::new(program)) - } - } - + /// See `std::process::Command::arg` pub fn arg>(&mut self, arg: S) -> &mut Executor { match self { Executor::Wet(c) => { @@ -35,6 +79,7 @@ impl Executor { self } + /// See `std::process::Command::args` pub fn args(&mut self, args: I) -> &mut Executor where I: IntoIterator, @@ -52,6 +97,7 @@ impl Executor { self } + /// See `std::process::Command::current_dir` pub fn current_dir>(&mut self, dir: P) -> &mut Executor { match self { Executor::Wet(c) => { @@ -63,6 +109,7 @@ impl Executor { self } + /// See `std::process::Command::spawn` pub fn spawn(&mut self) -> Result { let result = match self { Executor::Wet(c) => c.spawn().context(ErrorKind::ProcessExecution).map(ExecutorChild::Wet)?, @@ -88,6 +135,7 @@ impl Executor { } } +/// A struct represending a command. Trying to execute it will just print its arguments. #[derive(Default)] pub struct DryCommand { program: OsString, @@ -95,12 +143,14 @@ pub struct DryCommand { directory: Option, } +/// The Result of spawn. Contains an actual `std::process::Child` if executed by a wet command. pub enum ExecutorChild { Wet(Child), Dry, } impl ExecutorChild { + /// See `std::process::Child::wait` pub fn wait(&mut self) -> Result { let result = match self { ExecutorChild::Wet(c) => c @@ -114,6 +164,7 @@ impl ExecutorChild { } } +/// The Result of wait. Contains an actual `std::process::ExitStatus` if executed by a wet command. pub enum ExecutorExitStatus { Wet(ExitStatus), Dry, diff --git a/src/main.rs b/src/main.rs index 4c30014b..92b7098b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,7 +73,7 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { - if !opt.dry_run && env::var("TOPGRADE_NO_SELF_UPGRADE").is_err() { + if !opt.run_type.dry() && env::var("TOPGRADE_NO_SELF_UPGRADE").is_err() { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); if let Some(cause) = e.cause() { @@ -85,7 +85,7 @@ fn run() -> Result<(), Error> { if let Some(commands) = config.pre_commands() { for (name, command) in commands { - generic::run_custom_command(&name, &command, opt.dry_run).context(ErrorKind::PreCommand)?; + generic::run_custom_command(&name, &command, opt.run_type).context(ErrorKind::PreCommand)?; } } @@ -93,7 +93,7 @@ fn run() -> Result<(), Error> { let powershell = windows::Powershell::new(); #[cfg(windows)] - report.push_result(execute(|| powershell.update_modules(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| powershell.update_modules(opt.run_type), opt.no_retry)?); #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); @@ -104,7 +104,7 @@ fn run() -> Result<(), Error> { match &distribution { Ok(distribution) => { report.push_result(execute( - || distribution.upgrade(&sudo, opt.cleanup, opt.dry_run), + || distribution.upgrade(&sudo, opt.cleanup, opt.run_type), opt.no_retry, )?); } @@ -112,22 +112,22 @@ fn run() -> Result<(), Error> { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute(|| linux::run_etc_update(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| linux::run_etc_update(&sudo, opt.run_type), opt.no_retry)?); } } #[cfg(windows)] - report.push_result(execute(|| windows::run_chocolatey(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| windows::run_chocolatey(opt.run_type), opt.no_retry)?); #[cfg(windows)] - report.push_result(execute(|| windows::run_scoop(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| windows::run_scoop(opt.run_type), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.run_type), opt.no_retry)?); #[cfg(target_os = "freebsd")] - report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.run_type), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_nix(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| unix::run_nix(opt.run_type), opt.no_retry)?); if !opt.no_emacs { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); @@ -162,42 +162,42 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute(|| git.pull(&repo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| git.pull(&repo, opt.run_type), opt.no_retry)?); } #[cfg(unix)] { - report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.run_type), opt.no_retry)?); } - report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| generic::run_cargo_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_cargo_update(opt.run_type), opt.no_retry)?); if !opt.no_emacs { - report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.run_type), opt.no_retry)?); } - report.push_result(execute(|| generic::run_opam_update(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| generic::run_vcpkg_update(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| generic::run_pipx_update(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| generic::run_jetpack(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_opam_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_vcpkg_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_pipx_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_jetpack(opt.run_type), opt.no_retry)?); if !opt.no_vim { - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.run_type), opt.no_retry)?); } report.push_result(execute( - || node::run_npm_upgrade(&base_dirs, opt.dry_run), + || node::run_npm_upgrade(&base_dirs, opt.run_type), opt.no_retry, )?); report.push_result(execute( - || generic::run_composer_update(&base_dirs, opt.dry_run), + || generic::run_composer_update(&base_dirs, opt.run_type), opt.no_retry, )?); - report.push_result(execute(|| node::yarn_global_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| node::yarn_global_update(opt.run_type), opt.no_retry)?); #[cfg(not(any( target_os = "freebsd", @@ -205,23 +205,23 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute(|| generic::run_apm(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| generic::run_gem(&base_dirs, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| generic::run_apm(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_gem(&base_dirs, opt.run_type), opt.no_retry)?); #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_user_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| linux::flatpak_user_update(opt.run_type), opt.no_retry)?); report.push_result(execute( - || linux::flatpak_global_update(&sudo, opt.dry_run), + || linux::flatpak_global_update(&sudo, opt.run_type), opt.no_retry, )?); - report.push_result(execute(|| linux::run_snap(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| linux::run_snap(&sudo, opt.run_type), opt.no_retry)?); } if let Some(commands) = config.commands() { for (name, command) in commands { report.push_result(execute( - || Some((name, generic::run_custom_command(&name, &command, opt.dry_run).is_ok())), + || Some((name, generic::run_custom_command(&name, &command, opt.run_type).is_ok())), opt.no_retry, )?); } @@ -229,28 +229,28 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::run_fwupdmgr(opt.dry_run), opt.no_retry)?); - report.push_result(execute(|| linux::run_needrestart(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| linux::run_fwupdmgr(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_needrestart(&sudo, opt.run_type), opt.no_retry)?); } #[cfg(target_os = "macos")] { if !opt.no_system { - report.push_result(execute(|| macos::upgrade_macos(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| macos::upgrade_macos(opt.run_type), opt.no_retry)?); } } #[cfg(target_os = "freebsd")] { if !opt.no_system { - report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.run_type), opt.no_retry)?); } } #[cfg(windows)] { if !opt.no_system { - report.push_result(execute(|| powershell.windows_update(opt.dry_run), opt.no_retry)?); + report.push_result(execute(|| powershell.windows_update(opt.run_type), opt.no_retry)?); } } diff --git a/src/steps/generic.rs b/src/steps/generic.rs index a716c9f6..2aef7da6 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{self, Check, PathExt}; use directories::BaseDirs; @@ -10,12 +10,13 @@ use std::process::Command; const EMACS_UPGRADE: &str = include_str!("emacs.el"); #[must_use] -pub fn run_cargo_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_cargo_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(cargo_update) = utils::which("cargo-install-update") { print_separator("Cargo"); let success = || -> Result<(), Error> { - Executor::new(cargo_update, dry_run) + run_type + .execute(cargo_update) .args(&["install-update", "--git", "--all"]) .spawn()? .wait()? @@ -32,13 +33,14 @@ pub fn run_cargo_update(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_gem(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(gem) = utils::which("gem") { if base_dirs.home_dir().join(".gem").exists() { print_separator("RubyGems"); let success = || -> Result<(), Error> { - Executor::new(&gem, dry_run) + run_type + .execute(&gem) .args(&["update", "--user-install"]) .spawn()? .wait()? @@ -55,13 +57,14 @@ pub fn run_gem(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, boo } #[must_use] -pub fn run_emacs(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_emacs(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(emacs) = utils::which("emacs") { if let Some(init_file) = base_dirs.home_dir().join(".emacs.d/init.el").if_exists() { print_separator("Emacs"); let success = || -> Result<(), Error> { - Executor::new(&emacs, dry_run) + run_type + .execute(&emacs) .args(&["--batch", "-l", init_file.to_str().unwrap(), "--eval", EMACS_UPGRADE]) .spawn()? .wait()? @@ -84,12 +87,13 @@ pub fn run_emacs(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, b target_os = "netbsd", target_os = "dragonfly" )))] -pub fn run_apm(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_apm(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(apm) = utils::which("apm") { print_separator("Atom Package Manager"); let success = || -> Result<(), Error> { - Executor::new(&apm, dry_run) + run_type + .execute(&apm) .args(&["upgrade", "--confirm=false"]) .spawn()? .wait()? @@ -106,20 +110,21 @@ pub fn run_apm(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_rustup(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_rustup(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(rustup) = utils::which("rustup") { print_separator("rustup"); let success = || -> Result<(), Error> { if rustup.is_descendant_of(base_dirs.home_dir()) { - Executor::new(&rustup, dry_run) + run_type + .execute(&rustup) .args(&["self", "update"]) .spawn()? .wait()? .check()?; } - Executor::new(&rustup, dry_run).arg("update").spawn()?.wait()?.check()?; + run_type.execute(&rustup).arg("update").spawn()?.wait()?; Ok(()) }() .is_ok(); @@ -131,12 +136,13 @@ pub fn run_rustup(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, } #[must_use] -pub fn run_jetpack(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_jetpack(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(jetpack) = utils::which("jetpack") { print_separator("Jetpack"); let success = || -> Result<(), Error> { - Executor::new(&jetpack, dry_run) + run_type + .execute(&jetpack) .args(&["global", "update"]) .spawn()? .wait()? @@ -152,13 +158,13 @@ pub fn run_jetpack(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_opam_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_opam_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(opam) = utils::which("opam") { print_separator("OCaml Package Manager"); let success = || -> Result<(), Error> { - Executor::new(&opam, dry_run).arg("update").spawn()?.wait()?.check()?; - Executor::new(&opam, dry_run).arg("upgrade").spawn()?.wait()?.check()?; + run_type.execute(&opam).arg("update").spawn()?.wait()?; + run_type.execute(&opam).arg("upgrade").spawn()?.wait()?; Ok(()) }() .is_ok(); @@ -170,12 +176,13 @@ pub fn run_opam_update(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_vcpkg_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_vcpkg_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(vcpkg) = utils::which("vcpkg") { print_separator("vcpkg"); let success = || -> Result<(), Error> { - Executor::new(&vcpkg, dry_run) + run_type + .execute(&vcpkg) .args(&["upgrade", "--no-dry-run"]) .spawn()? .wait()? @@ -191,16 +198,12 @@ pub fn run_vcpkg_update(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_pipx_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_pipx_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(pipx) = utils::which("pipx") { print_separator("pipx"); let success = || -> Result<(), Error> { - Executor::new(&pipx, dry_run) - .arg("upgrade-all") - .spawn()? - .wait()? - .check()?; + run_type.execute(&pipx).arg("upgrade-all").spawn()?.wait()?.check()?; Ok(()) }() .is_ok(); @@ -212,20 +215,15 @@ pub fn run_pipx_update(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_custom_command(name: &str, command: &str, dry_run: bool) -> Result<(), Error> { +pub fn run_custom_command(name: &str, command: &str, run_type: RunType) -> Result<(), Error> { print_separator(name); - Executor::new("sh", dry_run) - .arg("-c") - .arg(command) - .spawn()? - .wait()? - .check()?; + run_type.execute("sh").arg("-c").arg(command).spawn()?.wait()?.check()?; Ok(()) } #[must_use] -pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(composer) = utils::which("composer") { let composer_home = || -> Result { let output = Command::new(&composer) @@ -243,14 +241,15 @@ pub fn run_composer_update(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'sta print_separator("Composer"); let success = || -> Result<(), Error> { - Executor::new(&composer, dry_run) + run_type + .execute(&composer) .args(&["global", "update"]) .spawn()? .wait()? .check()?; if let Some(valet) = utils::which("valet") { - Executor::new(&valet, dry_run).arg("install").spawn()?.wait()?.check()?; + run_type.execute(&valet).arg("install").spawn()?.wait()?; } Ok(()) diff --git a/src/steps/git.rs b/src/steps/git.rs index e0a5e3f1..6dcb055a 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{which, Check}; use log::{debug, error}; @@ -58,7 +58,7 @@ impl Git { None } - pub fn pull>(&self, path: P, dry_run: bool) -> Option<(String, bool)> { + pub fn pull>(&self, path: P, run_type: RunType) -> Option<(String, bool)> { let path = path.as_ref(); print_separator(format!("Pulling {}", path.display())); @@ -66,14 +66,16 @@ impl Git { let git = self.git.as_ref().unwrap(); let success = || -> Result<(), Error> { - Executor::new(git, dry_run) + run_type + .execute(git) .args(&["pull", "--rebase", "--autostash"]) .current_dir(&path) .spawn()? .wait()? .check()?; - Executor::new(git, dry_run) + run_type + .execute(git) .args(&["submodule", "update", "--init", "--recursive"]) .current_dir(&path) .spawn()? diff --git a/src/steps/node.rs b/src/steps/node.rs index f0114415..1d5edc27 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; @@ -29,8 +29,9 @@ impl NPM { )) } - fn upgrade(&self, dry_run: bool) -> Result<(), Error> { - Executor::new(&self.command, dry_run) + fn upgrade(&self, run_type: RunType) -> Result<(), Error> { + run_type + .execute(&self.command) .args(&["update", "-g"]) .spawn()? .wait()? @@ -41,12 +42,12 @@ impl NPM { } #[must_use] -pub fn run_npm_upgrade(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_npm_upgrade(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(npm) = which("npm").map(NPM::new) { if let Ok(npm_root) = npm.root() { if npm_root.is_descendant_of(base_dirs.home_dir()) { print_separator("Node Package Manager"); - let success = npm.upgrade(dry_run).is_ok(); + let success = npm.upgrade(run_type).is_ok(); return Some(("NPM", success)); } } @@ -55,12 +56,13 @@ pub fn run_npm_upgrade(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static } #[must_use] -pub fn yarn_global_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn yarn_global_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(yarn) = which("yarn") { print_separator("Yarn"); let success = || -> Result<(), Error> { - Executor::new(&yarn, dry_run) + run_type + .execute(&yarn) .args(&["global", "upgrade", "-s"]) .spawn()? .wait()? diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 30c0a72c..6579373d 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -7,12 +7,12 @@ use std::path::PathBuf; use std::process::Command; #[must_use] -pub fn upgrade_freebsd(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { print_separator("FreeBSD Update"); if let Some(sudo) = sudo { let success = || -> Result<(), Error> { - Executor::new(sudo, dry_run) + run_type.execute(sudo) .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) .spawn()? .wait()? @@ -29,12 +29,12 @@ pub fn upgrade_freebsd(sudo: &Option, dry_run: bool) -> Option<(&'stati } #[must_use] -pub fn upgrade_packages(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { print_separator("FreeBSD Packages"); if let Some(sudo) = sudo { let success = || -> Result<(), Error> { - Executor::new(sudo, dry_run) + run_type.execute(sudo) .args(&["/usr/sbin/pkg", "upgrade"]) .spawn()? .wait()? diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index 15f6a386..36c39a3e 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::{print_separator, print_warning}; use crate::utils::{which, Check}; use failure::ResultExt; @@ -59,17 +59,17 @@ impl Distribution { } #[must_use] - pub fn upgrade(self, sudo: &Option, cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn upgrade(self, sudo: &Option, cleanup: bool, run_type: RunType) -> Option<(&'static str, bool)> { print_separator("System update"); let success = match self { - Distribution::Arch => upgrade_arch_linux(&sudo, cleanup, dry_run), - Distribution::CentOS => upgrade_redhat(&sudo, dry_run), - Distribution::Fedora => upgrade_fedora(&sudo, dry_run), - Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, cleanup, dry_run), - Distribution::Gentoo => upgrade_gentoo(&sudo, dry_run), - Distribution::OpenSuse => upgrade_opensuse(&sudo, dry_run), - Distribution::Void => upgrade_void(&sudo, dry_run), + Distribution::Arch => upgrade_arch_linux(&sudo, cleanup, run_type), + Distribution::CentOS => upgrade_redhat(&sudo, run_type), + Distribution::Fedora => upgrade_fedora(&sudo, run_type), + Distribution::Ubuntu | Distribution::Debian => upgrade_debian(&sudo, cleanup, run_type), + Distribution::Gentoo => upgrade_gentoo(&sudo, run_type), + Distribution::OpenSuse => upgrade_opensuse(&sudo, run_type), + Distribution::Void => upgrade_void(&sudo, run_type), }; Some(("System update", success.is_ok())) @@ -103,7 +103,7 @@ pub fn show_pacnew() { } } -fn upgrade_arch_linux(sudo: &Option, cleanup: bool, dry_run: bool) -> Result<(), Error> { +fn upgrade_arch_linux(sudo: &Option, cleanup: bool, run_type: RunType) -> Result<(), Error> { if let Some(yay) = which("yay") { if let Some(python) = which("python") { if python != PathBuf::from("/usr/bin/python") { @@ -115,10 +115,10 @@ It's dangerous to run yay since Python based AUR packages will be installed in t return Err(ErrorKind::NotSystemPython)?; } } - - Executor::new(yay, dry_run).spawn()?.wait()?.check()?; + run_type.execute(yay).spawn()?.wait()?.check()?; } else if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/pacman", "-Syu"]) .spawn()? .wait()? @@ -129,7 +129,8 @@ It's dangerous to run yay since Python based AUR packages will be installed in t if cleanup { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/pacman", "-Scc"]) .spawn()? .wait()? @@ -140,9 +141,10 @@ It's dangerous to run yay since Python based AUR packages will be installed in t Ok(()) } -fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_redhat(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/yum", "upgrade"]) .spawn()? .wait()? @@ -154,15 +156,17 @@ fn upgrade_redhat(sudo: &Option, dry_run: bool) -> Result<(), Error> { Ok(()) } -fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_opensuse(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/zypper", "refresh"]) .spawn()? .wait()? .check()?; - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/zypper", "dist-upgrade"]) .spawn()? .wait()? @@ -174,9 +178,10 @@ fn upgrade_opensuse(sudo: &Option, dry_run: bool) -> Result<(), Error> Ok(()) } -fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_void(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/xbps-install", "-Su"]) .spawn()? .wait()? @@ -188,9 +193,10 @@ fn upgrade_void(sudo: &Option, dry_run: bool) -> Result<(), Error> { Ok(()) } -fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_fedora(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/dnf", "upgrade"]) .spawn()? .wait()? @@ -202,10 +208,11 @@ fn upgrade_fedora(sudo: &Option, dry_run: bool) -> Result<(), Error> { Ok(()) } -fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { +fn upgrade_gentoo(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { if let Some(layman) = which("layman") { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .arg(layman) .args(&["-s", "ALL"]) .spawn()? @@ -214,7 +221,8 @@ fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { } println!("Syncing portage"); - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .arg("/usr/bin/emerge") .args(&["-q", "--sync"]) .spawn()? @@ -222,10 +230,11 @@ fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { .check()?; if let Some(eix_update) = which("eix-update") { - Executor::new(&sudo, dry_run).arg(eix_update).spawn()?.wait()?.check()?; + run_type.execute(&sudo).arg(eix_update).spawn()?.wait()?; } - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .arg("/usr/bin/emerge") .args(&["-uDNa", "world"]) .spawn()? @@ -238,28 +247,32 @@ fn upgrade_gentoo(sudo: &Option, dry_run: bool) -> Result<(), Error> { Ok(()) } -fn upgrade_debian(sudo: &Option, cleanup: bool, dry_run: bool) -> Result<(), Error> { +fn upgrade_debian(sudo: &Option, cleanup: bool, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/apt", "update"]) .spawn()? .wait()? .check()?; - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/apt", "dist-upgrade"]) .spawn()? .wait()? .check()?; if cleanup { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/apt", "clean"]) .spawn()? .wait()? .check()?; - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&["/usr/bin/apt", "autoremove"]) .spawn()? .wait()? @@ -273,17 +286,13 @@ fn upgrade_debian(sudo: &Option, cleanup: bool, dry_run: bool) -> Resul } #[must_use] -pub fn run_needrestart(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_needrestart(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(needrestart) = which("needrestart") { print_separator("Check for needed restarts"); let success = || -> Result<(), Error> { - Executor::new(&sudo, dry_run) - .arg(needrestart) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).arg(needrestart).spawn()?.wait()?.check()?; Ok(()) }() @@ -297,17 +306,14 @@ pub fn run_needrestart(sudo: &Option, dry_run: bool) -> Option<(&'stati } #[must_use] -pub fn run_fwupdmgr(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_fwupdmgr(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(fwupdmgr) = which("fwupdmgr") { print_separator("Firmware upgrades"); let success = || -> Result<(), Error> { - Executor::new(&fwupdmgr, dry_run) - .arg("refresh") - .spawn()? - .wait()? - .check()?; - Executor::new(&fwupdmgr, dry_run) + run_type.execute(&fwupdmgr).arg("refresh").spawn()?.wait()?.check()?; + run_type + .execute(&fwupdmgr) .arg("get-updates") .spawn()? .wait()? @@ -323,12 +329,13 @@ pub fn run_fwupdmgr(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn flatpak_user_update(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn flatpak_user_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(flatpak) = which("flatpak") { print_separator("Flatpak User Packages"); let success = || -> Result<(), Error> { - Executor::new(&flatpak, dry_run) + run_type + .execute(&flatpak) .args(&["update", "--user", "-y"]) .spawn()? .wait()? @@ -344,13 +351,14 @@ pub fn flatpak_user_update(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn flatpak_global_update(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn flatpak_global_update(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(flatpak) = which("flatpak") { print_separator("Flatpak Global Packages"); let success = || -> Result<(), Error> { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&[flatpak.to_str().unwrap(), "update", "-y"]) .spawn()? .wait()? @@ -367,14 +375,15 @@ pub fn flatpak_global_update(sudo: &Option, dry_run: bool) -> Option<(& } #[must_use] -pub fn run_snap(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_snap(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(snap) = which("snap") { if PathBuf::from("/var/snapd.socket").exists() { print_separator("snap"); let success = || -> Result<(), Error> { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .args(&[snap.to_str().unwrap(), "refresh"]) .spawn()? .wait()? @@ -393,13 +402,14 @@ pub fn run_snap(sudo: &Option, dry_run: bool) -> Option<(&'static str, } #[must_use] -pub fn run_etc_update(sudo: &Option, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_etc_update(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { if let Some(etc_update) = which("etc-update") { print_separator("etc-update"); let success = || -> Result<(), Error> { - Executor::new(&sudo, dry_run) + run_type + .execute(&sudo) .arg(&etc_update.to_str().unwrap()) .spawn()? .wait()? diff --git a/src/steps/os/macos.rs b/src/steps/os/macos.rs index 184247b3..49d5a331 100644 --- a/src/steps/os/macos.rs +++ b/src/steps/os/macos.rs @@ -4,11 +4,11 @@ use crate::terminal::print_separator; use crate::utils::Check; #[must_use] -pub fn upgrade_macos(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_macos(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("App Store"); let success = || -> Result<(), Error> { - Executor::new("softwareupdate", dry_run) + run_type.execute("softwareupdate") .args(&["--install", "--all"]) .spawn()? .wait()? diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 57c23443..b0e80f30 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,16 +1,17 @@ use crate::error::Error; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{which, Check}; use directories::BaseDirs; -pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { if base_dirs.home_dir().join(".zplug").exists() { print_separator("zplug"); let success = || -> Result<(), Error> { - Executor::new(zsh, dry_run) + run_type + .execute(zsh) .args(&["-c", "source ~/.zshrc && zplug update"]) .spawn()? .wait()? @@ -26,18 +27,20 @@ pub fn run_zplug(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, b None } -pub fn run_fisher(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_fisher(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(fish) = which("fish") { if base_dirs.home_dir().join(".config/fish/functions/fisher.fish").exists() { print_separator("fisher"); let success = || -> Result<(), Error> { - Executor::new(&fish, dry_run) + run_type + .execute(&fish) .args(&["-c", "fisher self-update"]) .spawn()? .wait()? .check()?; - Executor::new(&fish, dry_run) + run_type + .execute(&fish) .args(&["-c", "fisher"]) .spawn()? .wait()? @@ -54,20 +57,21 @@ pub fn run_fisher(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, } #[must_use] -pub fn run_homebrew(cleanup: bool, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(brew) = which("brew") { print_separator("Brew"); let inner = || -> Result<(), Error> { - Executor::new(&brew, dry_run).arg("update").spawn()?.wait()?.check()?; - Executor::new(&brew, dry_run).arg("upgrade").spawn()?.wait()?.check()?; - Executor::new(&brew, dry_run) + run_type.execute(&brew).arg("update").spawn()?.wait()?; + run_type.execute(&brew).arg("upgrade").spawn()?.wait()?; + run_type + .execute(&brew) .args(&["cask", "upgrade"]) .spawn()? .wait()? .check()?; if cleanup { - Executor::new(&brew, dry_run).arg("cleanup").spawn()?.wait()?.check()?; + run_type.execute(&brew).arg("cleanup").spawn()?.wait()?; } Ok(()) }; @@ -79,22 +83,14 @@ pub fn run_homebrew(cleanup: bool, dry_run: bool) -> Option<(&'static str, bool) } #[must_use] -pub fn run_nix(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_nix(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(nix) = which("nix") { if let Some(nix_env) = which("nix-env") { print_separator("Nix"); let inner = || -> Result<(), Error> { - Executor::new(&nix, dry_run) - .arg("upgrade-nix") - .spawn()? - .wait()? - .check()?; - Executor::new(&nix_env, dry_run) - .arg("--upgrade") - .spawn()? - .wait()? - .check()?; + run_type.execute(&nix).arg("upgrade-nix").spawn()?.wait()?.check()?; + run_type.execute(&nix_env).arg("--upgrade").spawn()?.wait()?.check()?; Ok(()) }; diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index b40ac55d..44baad01 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -8,12 +8,12 @@ use std::path::PathBuf; use std::process::Command; #[must_use] -pub fn run_chocolatey(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_chocolatey(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(choco) = utils::which("choco") { print_separator("Chocolatey"); let success = || -> Result<(), Error> { - Executor::new(&choco, dry_run) + run_type.execute(&choco) .args(&["upgrade", "all"]) .spawn()? .wait()? @@ -29,17 +29,17 @@ pub fn run_chocolatey(dry_run: bool) -> Option<(&'static str, bool)> { } #[must_use] -pub fn run_scoop(dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_scoop(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(scoop) = utils::which("scoop") { print_separator("Scoop"); let success = || -> Result<(), Error> { - Executor::new(&scoop, dry_run) + run_type.execute(&scoop) .args(&["update"]) .spawn()? .wait()? .check()?; - Executor::new(&scoop, dry_run) + run_type.execute(&scoop) .args(&["update", "*"]) .spawn()? .wait()? @@ -99,12 +99,12 @@ impl Powershell { } #[must_use] - pub fn update_modules(&self, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn update_modules(&self, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(powershell) = &self.path { print_separator("Powershell Modules Update"); let success = || -> Result<(), Error> { - Executor::new(&powershell, dry_run) + run_type.execute(&powershell) .arg("Update-Module") .spawn()? .wait()? @@ -120,13 +120,13 @@ impl Powershell { } #[must_use] - pub fn windows_update(&self, dry_run: bool) -> Option<(&'static str, bool)> { + pub fn windows_update(&self, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(powershell) = &self.path { if Self::has_command(&powershell, "Install-WindowsUpdate") { print_separator("Windows Update"); let success = || -> Result<(), Error> { - Executor::new(&powershell, dry_run) + run_type.execute(&powershell) .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) .spawn()? .wait()? diff --git a/src/steps/tmux.rs b/src/steps/tmux.rs index 41e64dfa..93c2f0ab 100644 --- a/src/steps/tmux.rs +++ b/src/steps/tmux.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; @@ -10,7 +10,7 @@ use std::os::unix::process::CommandExt; use std::path::Path; use std::process::Command; -pub fn run_tpm(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn run_tpm(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(tpm) = base_dirs .home_dir() .join(".tmux/plugins/tpm/bin/update_plugins") @@ -19,7 +19,7 @@ pub fn run_tpm(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, boo print_separator("tmux plugins"); let success = || -> Result<(), Error> { - Executor::new(&tpm, dry_run).arg("all").spawn()?.wait()?.check()?; + run_type.execute(&tpm).arg("all").spawn()?.wait()?; Ok(()) }() .is_ok(); diff --git a/src/steps/vim.rs b/src/steps/vim.rs index fcbb4699..f16549ad 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::executor::Executor; +use crate::executor::{RunType}; use crate::terminal::print_separator; use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; @@ -54,8 +54,8 @@ fn nvimrc(base_dirs: &BaseDirs) -> Option { } #[must_use] -fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, dry_run: bool) -> Result<(), Error> { - Executor::new(&vim, dry_run) +fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, run_type: RunType) -> Result<(), Error> { + run_type.execute(&vim) .args(&[ "-N", "-u", @@ -78,12 +78,12 @@ fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, dr } #[must_use] -pub fn upgrade_vim(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_vim(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(vim) = which("vim") { if let Some(vimrc) = vimrc(&base_dirs) { if let Some(plugin_framework) = PluginFramework::detect(&vimrc) { print_separator(&format!("Vim ({:?})", plugin_framework)); - let success = upgrade(&vim, &vimrc, plugin_framework, dry_run).is_ok(); + let success = upgrade(&vim, &vimrc, plugin_framework, run_type).is_ok(); return Some(("vim", success)); } } @@ -93,12 +93,12 @@ pub fn upgrade_vim(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, } #[must_use] -pub fn upgrade_neovim(base_dirs: &BaseDirs, dry_run: bool) -> Option<(&'static str, bool)> { +pub fn upgrade_neovim(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(nvim) = which("nvim") { if let Some(nvimrc) = nvimrc(&base_dirs) { if let Some(plugin_framework) = PluginFramework::detect(&nvimrc) { print_separator(&format!("Neovim ({:?})", plugin_framework)); - let success = upgrade(&nvim, &nvimrc, plugin_framework, dry_run).is_ok(); + let success = upgrade(&nvim, &nvimrc, plugin_framework, run_type).is_ok(); return Some(("Neovim", success)); } } From 2cac8a7970ab1aab38b10ec475a211c2121cec8e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 13:34:56 +0200 Subject: [PATCH 068/140] Cargo fmt --- src/main.rs | 5 ++++- src/steps/os/freebsd.rs | 6 ++++-- src/steps/os/macos.rs | 3 ++- src/steps/os/windows.rs | 18 +++++++++--------- src/steps/vim.rs | 5 +++-- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index 92b7098b..a3984306 100644 --- a/src/main.rs +++ b/src/main.rs @@ -125,7 +125,10 @@ fn run() -> Result<(), Error> { #[cfg(unix)] report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.run_type), opt.no_retry)?); #[cfg(target_os = "freebsd")] - report.push_result(execute(|| freebsd::upgrade_packages(&sudo, opt.run_type), opt.no_retry)?); + report.push_result(execute( + || freebsd::upgrade_packages(&sudo, opt.run_type), + opt.no_retry, + )?); #[cfg(unix)] report.push_result(execute(|| unix::run_nix(opt.run_type), opt.no_retry)?); diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 6579373d..db6a015b 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -12,7 +12,8 @@ pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Option<(&'s if let Some(sudo) = sudo { let success = || -> Result<(), Error> { - run_type.execute(sudo) + run_type + .execute(sudo) .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) .spawn()? .wait()? @@ -34,7 +35,8 @@ pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Option<(&' if let Some(sudo) = sudo { let success = || -> Result<(), Error> { - run_type.execute(sudo) + run_type + .execute(sudo) .args(&["/usr/sbin/pkg", "upgrade"]) .spawn()? .wait()? diff --git a/src/steps/os/macos.rs b/src/steps/os/macos.rs index 49d5a331..79fbc1ff 100644 --- a/src/steps/os/macos.rs +++ b/src/steps/os/macos.rs @@ -8,7 +8,8 @@ pub fn upgrade_macos(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("App Store"); let success = || -> Result<(), Error> { - run_type.execute("softwareupdate") + run_type + .execute("softwareupdate") .args(&["--install", "--all"]) .spawn()? .wait()? diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 44baad01..4339f9d8 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -13,7 +13,8 @@ pub fn run_chocolatey(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Chocolatey"); let success = || -> Result<(), Error> { - run_type.execute(&choco) + run_type + .execute(&choco) .args(&["upgrade", "all"]) .spawn()? .wait()? @@ -34,12 +35,9 @@ pub fn run_scoop(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Scoop"); let success = || -> Result<(), Error> { - run_type.execute(&scoop) - .args(&["update"]) - .spawn()? - .wait()? - .check()?; - run_type.execute(&scoop) + run_type.execute(&scoop).args(&["update"]).spawn()?.wait()?.check()?; + run_type + .execute(&scoop) .args(&["update", "*"]) .spawn()? .wait()? @@ -104,7 +102,8 @@ impl Powershell { print_separator("Powershell Modules Update"); let success = || -> Result<(), Error> { - run_type.execute(&powershell) + run_type + .execute(&powershell) .arg("Update-Module") .spawn()? .wait()? @@ -126,7 +125,8 @@ impl Powershell { print_separator("Windows Update"); let success = || -> Result<(), Error> { - run_type.execute(&powershell) + run_type + .execute(&powershell) .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) .spawn()? .wait()? diff --git a/src/steps/vim.rs b/src/steps/vim.rs index f16549ad..b617e696 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::executor::{RunType}; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{which, Check, PathExt}; use directories::BaseDirs; @@ -55,7 +55,8 @@ fn nvimrc(base_dirs: &BaseDirs) -> Option { #[must_use] fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, run_type: RunType) -> Result<(), Error> { - run_type.execute(&vim) + run_type + .execute(&vim) .args(&[ "-N", "-u", From 19de3617754a07265660365adece6fe21ea83d6c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 14:05:15 +0200 Subject: [PATCH 069/140] Dry run fixup --- src/config.rs | 3 +- src/executor.rs | 11 +----- src/main.rs | 84 +++++++++++++++++++---------------------- src/steps/os/freebsd.rs | 2 +- src/steps/os/macos.rs | 2 +- src/steps/os/windows.rs | 2 +- 6 files changed, 43 insertions(+), 61 deletions(-) diff --git a/src/config.rs b/src/config.rs index 2acc8f4e..a8da781a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,4 @@ use super::error::{Error, ErrorKind}; -use super::executor::RunType; use directories::BaseDirs; use failure::ResultExt; use serde::Deserialize; @@ -79,7 +78,7 @@ pub struct Opt { /// Print what would be done #[structopt(short = "n", long = "dry-run")] - pub run_type: RunType, + pub dry_run: bool, /// Do not ask to retry failed steps #[structopt(long = "no-retry")] diff --git a/src/executor.rs b/src/executor.rs index 7e958f75..2370483e 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -5,7 +5,6 @@ use failure::ResultExt; use std::ffi::{OsStr, OsString}; use std::path::Path; use std::process::{Child, Command, ExitStatus}; -use std::str::{FromStr, ParseBoolError}; /// An enum telling whether Topgrade should perform dry runs or actually perform the steps. #[derive(Clone, Copy, Debug)] @@ -19,7 +18,7 @@ pub enum RunType { impl RunType { /// Create a new instance from a boolean telling whether to dry run. - fn new(dry_run: bool) -> Self { + pub fn new(dry_run: bool) -> Self { if dry_run { RunType::Dry } else { @@ -48,14 +47,6 @@ impl RunType { } } -impl FromStr for RunType { - type Err = ParseBoolError; - - fn from_str(s: &str) -> Result { - Ok(Self::new(bool::from_str(s)?)) - } -} - /// An enum providing a similar interface to `std::process::Command`. /// If the enum is set to `Wet`, execution will be performed with `std::process::Command`. /// If the enum is set to `Dry`, execution will just print the command with its arguments. diff --git a/src/main.rs b/src/main.rs index a3984306..6fa004fe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,10 +70,11 @@ fn run() -> Result<(), Error> { #[cfg(any(target_os = "freebsd", target_os = "linux"))] let sudo = utils::which("sudo"); + let run_type = executor::RunType::new(opt.dry_run); #[cfg(feature = "self-update")] { - if !opt.run_type.dry() && env::var("TOPGRADE_NO_SELF_UPGRADE").is_err() { + if !run_type.dry() && env::var("TOPGRADE_NO_SELF_UPGRADE").is_err() { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); if let Some(cause) = e.cause() { @@ -85,7 +86,7 @@ fn run() -> Result<(), Error> { if let Some(commands) = config.pre_commands() { for (name, command) in commands { - generic::run_custom_command(&name, &command, opt.run_type).context(ErrorKind::PreCommand)?; + generic::run_custom_command(&name, &command, run_type).context(ErrorKind::PreCommand)?; } } @@ -93,7 +94,7 @@ fn run() -> Result<(), Error> { let powershell = windows::Powershell::new(); #[cfg(windows)] - report.push_result(execute(|| powershell.update_modules(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| powershell.update_modules(run_type), opt.no_retry)?); #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); @@ -104,7 +105,7 @@ fn run() -> Result<(), Error> { match &distribution { Ok(distribution) => { report.push_result(execute( - || distribution.upgrade(&sudo, opt.cleanup, opt.run_type), + || distribution.upgrade(&sudo, opt.cleanup, run_type), opt.no_retry, )?); } @@ -112,25 +113,22 @@ fn run() -> Result<(), Error> { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute(|| linux::run_etc_update(&sudo, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_etc_update(&sudo, run_type), opt.no_retry)?); } } #[cfg(windows)] - report.push_result(execute(|| windows::run_chocolatey(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| windows::run_chocolatey(run_type), opt.no_retry)?); #[cfg(windows)] - report.push_result(execute(|| windows::run_scoop(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| windows::run_scoop(run_type), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_homebrew(opt.cleanup, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_homebrew(opt.cleanup, run_type), opt.no_retry)?); #[cfg(target_os = "freebsd")] - report.push_result(execute( - || freebsd::upgrade_packages(&sudo, opt.run_type), - opt.no_retry, - )?); + report.push_result(execute(|| freebsd::upgrade_packages(&sudo, run_type), opt.no_retry)?); #[cfg(unix)] - report.push_result(execute(|| unix::run_nix(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_nix(run_type), opt.no_retry)?); if !opt.no_emacs { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); @@ -165,42 +163,39 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute(|| git.pull(&repo, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| git.pull(&repo, run_type), opt.no_retry)?); } #[cfg(unix)] { - report.push_result(execute(|| unix::run_zplug(&base_dirs, opt.run_type), opt.no_retry)?); - report.push_result(execute(|| unix::run_fisher(&base_dirs, opt.run_type), opt.no_retry)?); - report.push_result(execute(|| tmux::run_tpm(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_zplug(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_fisher(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute(|| tmux::run_tpm(&base_dirs, run_type), opt.no_retry)?); } - report.push_result(execute(|| generic::run_rustup(&base_dirs, opt.run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_cargo_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_rustup(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_cargo_update(run_type), opt.no_retry)?); if !opt.no_emacs { - report.push_result(execute(|| generic::run_emacs(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_emacs(&base_dirs, run_type), opt.no_retry)?); } - report.push_result(execute(|| generic::run_opam_update(opt.run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_vcpkg_update(opt.run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_pipx_update(opt.run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_jetpack(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_opam_update(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_vcpkg_update(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_pipx_update(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_jetpack(run_type), opt.no_retry)?); if !opt.no_vim { - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, opt.run_type), opt.no_retry)?); - report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, run_type), opt.no_retry)?); } + report.push_result(execute(|| node::run_npm_upgrade(&base_dirs, run_type), opt.no_retry)?); report.push_result(execute( - || node::run_npm_upgrade(&base_dirs, opt.run_type), + || generic::run_composer_update(&base_dirs, run_type), opt.no_retry, )?); - report.push_result(execute( - || generic::run_composer_update(&base_dirs, opt.run_type), - opt.no_retry, - )?); - report.push_result(execute(|| node::yarn_global_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| node::yarn_global_update(run_type), opt.no_retry)?); #[cfg(not(any( target_os = "freebsd", @@ -208,23 +203,20 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute(|| generic::run_apm(opt.run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_gem(&base_dirs, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_apm(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), opt.no_retry)?); #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_user_update(opt.run_type), opt.no_retry)?); - report.push_result(execute( - || linux::flatpak_global_update(&sudo, opt.run_type), - opt.no_retry, - )?); - report.push_result(execute(|| linux::run_snap(&sudo, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| linux::flatpak_user_update(run_type), opt.no_retry)?); + report.push_result(execute(|| linux::flatpak_global_update(&sudo, run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_snap(&sudo, run_type), opt.no_retry)?); } if let Some(commands) = config.commands() { for (name, command) in commands { report.push_result(execute( - || Some((name, generic::run_custom_command(&name, &command, opt.run_type).is_ok())), + || Some((name, generic::run_custom_command(&name, &command, run_type).is_ok())), opt.no_retry, )?); } @@ -232,28 +224,28 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::run_fwupdmgr(opt.run_type), opt.no_retry)?); - report.push_result(execute(|| linux::run_needrestart(&sudo, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_fwupdmgr(run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_needrestart(&sudo, run_type), opt.no_retry)?); } #[cfg(target_os = "macos")] { if !opt.no_system { - report.push_result(execute(|| macos::upgrade_macos(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| macos::upgrade_macos(run_type), opt.no_retry)?); } } #[cfg(target_os = "freebsd")] { if !opt.no_system { - report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, opt.run_type), opt.no_retry)?); + report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, run_type), opt.no_retry)?); } } #[cfg(windows)] { if !opt.no_system { - report.push_result(execute(|| powershell.windows_update(opt.run_type), opt.no_retry)?); + report.push_result(execute(|| powershell.windows_update(run_type), opt.no_retry)?); } } diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index db6a015b..d4e40eea 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::{print_separator, print_warning}; use crate::utils::Check; use failure::ResultExt; diff --git a/src/steps/os/macos.rs b/src/steps/os/macos.rs index 79fbc1ff..ddf7eed3 100644 --- a/src/steps/os/macos.rs +++ b/src/steps/os/macos.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::Check; diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 4339f9d8..23ae52e5 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -1,5 +1,5 @@ use crate::error::{Error, ErrorKind}; -use crate::executor::Executor; +use crate::executor::RunType; use crate::terminal::print_separator; use crate::utils::{self, which, Check}; use failure::ResultExt; From a404df9c97c95b2f96a95c6e4251ed676c09256a Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 14:07:55 +0200 Subject: [PATCH 070/140] Ctrl+C handling documentation --- src/ctrlc/mod.rs | 2 ++ src/ctrlc/unix.rs | 20 ++++++++++++++------ src/ctrlc/windows.rs | 6 ++++-- src/main.rs | 10 +++++----- src/terminal.rs | 8 ++++---- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/ctrlc/mod.rs b/src/ctrlc/mod.rs index 25cf5bb3..4284cd92 100644 --- a/src/ctrlc/mod.rs +++ b/src/ctrlc/mod.rs @@ -1,3 +1,5 @@ +//! Provides handling for process interruption. +//! There's no actual handling for Windows at the moment. #[cfg(unix)] mod unix; #[cfg(unix)] diff --git a/src/ctrlc/unix.rs b/src/ctrlc/unix.rs index 46c7c10e..d63eca81 100644 --- a/src/ctrlc/unix.rs +++ b/src/ctrlc/unix.rs @@ -1,23 +1,31 @@ +//! SIGINT handling in Unix systems. use lazy_static::lazy_static; use nix::sys::signal; use std::sync::atomic::{AtomicBool, Ordering}; lazy_static! { - static ref RUNNING: AtomicBool = AtomicBool::new(true); + /// A global variable telling whether the application has been interrupted. + static ref INTERRUPTED: AtomicBool = AtomicBool::new(false); } -pub fn running() -> bool { - RUNNING.load(Ordering::SeqCst) +/// Tells whether the program has been interrupted +pub fn interrupted() -> bool { + INTERRUPTED.load(Ordering::SeqCst) } -pub fn set_running(value: bool) { - RUNNING.store(value, Ordering::SeqCst) +/// Clears the interrupted flag +pub fn unset_interrupted() { + debug_assert!(INTERRUPTED.load(Ordering::SeqCst)); + INTERRUPTED.store(false, Ordering::SeqCst) } +/// Handle SIGINT. Set the interruption flag. extern "C" fn handle_sigint(_: i32) { - set_running(false); + INTERRUPTED.store(true, Ordering::SeqCst) } +/// Set the necessary signal handlers. +/// The function panics on failure. pub fn set_handler() { let sig_action = signal::SigAction::new( signal::SigHandler::Handler(handle_sigint), diff --git a/src/ctrlc/windows.rs b/src/ctrlc/windows.rs index 83f9d380..56d413bb 100644 --- a/src/ctrlc/windows.rs +++ b/src/ctrlc/windows.rs @@ -1,7 +1,9 @@ -pub fn running() -> bool { +//! A stub for Ctrl + C handling. + +pub fn interrupted() -> bool { true } -pub fn set_running(_value: bool) {} +pub fn unset_interrupted() {} pub fn set_handler() {} diff --git a/src/main.rs b/src/main.rs index 6fa004fe..01f0a263 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,13 +31,13 @@ where return Ok(Some((key, success))); } - let running = ctrlc::running(); - if !running { - ctrlc::set_running(true); + let interrupted = ctrlc::interrupted(); + if interrupted { + ctrlc::unset_interrupted(); } - let should_ask = !running || !no_retry; - let should_retry = should_ask && should_retry(running).context(ErrorKind::Retry)?; + let should_ask = interrupted || !no_retry; + let should_retry = should_ask && should_retry(interrupted).context(ErrorKind::Retry)?; if !should_retry { return Ok(Some((key, success))); diff --git a/src/terminal.rs b/src/terminal.rs index 4e920de1..610b63a2 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -70,7 +70,7 @@ impl Terminal { .ok(); } - fn should_retry(&mut self, running: bool) -> Result { + fn should_retry(&mut self, interrupted: bool) -> Result { if self.width.is_none() { return Ok(false); } @@ -80,7 +80,7 @@ impl Terminal { "\n{}", style(format!( "Retry? [y/N] {}", - if !running { + if interrupted { "(Press Ctrl+C again to stop Topgrade) " } else { "" @@ -111,8 +111,8 @@ impl Default for Terminal { } } -pub fn should_retry(running: bool) -> Result { - TERMINAL.lock().unwrap().should_retry(running) +pub fn should_retry(interrupted: bool) -> Result { + TERMINAL.lock().unwrap().should_retry(interrupted) } pub fn print_separator>(message: P) { From f3f8f322d874b6f4dbdbe244838aa7e49f6db504 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 22:00:34 +0200 Subject: [PATCH 071/140] Add check_run() --- src/executor.rs | 7 +++ src/steps/generic.rs | 56 +++++--------------- src/steps/git.rs | 10 ++-- src/steps/node.rs | 14 +---- src/steps/os/freebsd.rs | 11 +--- src/steps/os/linux.rs | 114 +++++++++------------------------------- src/steps/os/macos.rs | 5 +- src/steps/os/unix.rs | 34 ++++-------- src/steps/os/windows.rs | 27 ++-------- src/steps/tmux.rs | 2 +- src/steps/vim.rs | 6 +-- 11 files changed, 71 insertions(+), 215 deletions(-) diff --git a/src/executor.rs b/src/executor.rs index 2370483e..2807eae5 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -124,6 +124,13 @@ impl Executor { Ok(result) } + + /// A convinence method for `spawn().wait().check()`. + /// Returns an error if something went wrong during the execution or if the + /// process exited with failure. + pub fn check_run(&mut self) -> Result<(), Error> { + self.spawn()?.wait()?.check() + } } /// A struct represending a command. Trying to execute it will just print its arguments. diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 2aef7da6..c43eeedd 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -18,9 +18,7 @@ pub fn run_cargo_update(run_type: RunType) -> Option<(&'static str, bool)> { run_type .execute(cargo_update) .args(&["install-update", "--git", "--all"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() @@ -39,12 +37,7 @@ pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, print_separator("RubyGems"); let success = || -> Result<(), Error> { - run_type - .execute(&gem) - .args(&["update", "--user-install"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&gem).args(&["update", "--user-install"]).check_run()?; Ok(()) }() @@ -66,9 +59,7 @@ pub fn run_emacs(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static st run_type .execute(&emacs) .args(&["--batch", "-l", init_file.to_str().unwrap(), "--eval", EMACS_UPGRADE]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() @@ -95,9 +86,7 @@ pub fn run_apm(run_type: RunType) -> Option<(&'static str, bool)> { run_type .execute(&apm) .args(&["upgrade", "--confirm=false"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() @@ -116,15 +105,10 @@ pub fn run_rustup(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static s let success = || -> Result<(), Error> { if rustup.is_descendant_of(base_dirs.home_dir()) { - run_type - .execute(&rustup) - .args(&["self", "update"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&rustup).args(&["self", "update"]).check_run()?; } - run_type.execute(&rustup).arg("update").spawn()?.wait()?; + run_type.execute(&rustup).arg("update").check_run()?; Ok(()) }() .is_ok(); @@ -141,12 +125,7 @@ pub fn run_jetpack(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Jetpack"); let success = || -> Result<(), Error> { - run_type - .execute(&jetpack) - .args(&["global", "update"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&jetpack).args(&["global", "update"]).check_run()?; Ok(()) }() .is_ok(); @@ -163,8 +142,8 @@ pub fn run_opam_update(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("OCaml Package Manager"); let success = || -> Result<(), Error> { - run_type.execute(&opam).arg("update").spawn()?.wait()?; - run_type.execute(&opam).arg("upgrade").spawn()?.wait()?; + run_type.execute(&opam).arg("update").check_run()?; + run_type.execute(&opam).arg("upgrade").check_run()?; Ok(()) }() .is_ok(); @@ -184,9 +163,7 @@ pub fn run_vcpkg_update(run_type: RunType) -> Option<(&'static str, bool)> { run_type .execute(&vcpkg) .args(&["upgrade", "--no-dry-run"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); @@ -203,7 +180,7 @@ pub fn run_pipx_update(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("pipx"); let success = || -> Result<(), Error> { - run_type.execute(&pipx).arg("upgrade-all").spawn()?.wait()?.check()?; + run_type.execute(&pipx).arg("upgrade-all").check_run()?; Ok(()) }() .is_ok(); @@ -217,7 +194,7 @@ pub fn run_pipx_update(run_type: RunType) -> Option<(&'static str, bool)> { #[must_use] pub fn run_custom_command(name: &str, command: &str, run_type: RunType) -> Result<(), Error> { print_separator(name); - run_type.execute("sh").arg("-c").arg(command).spawn()?.wait()?.check()?; + run_type.execute("sh").arg("-c").arg(command).check_run()?; Ok(()) } @@ -241,15 +218,10 @@ pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Option<(& print_separator("Composer"); let success = || -> Result<(), Error> { - run_type - .execute(&composer) - .args(&["global", "update"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&composer).args(&["global", "update"]).check_run()?; if let Some(valet) = utils::which("valet") { - run_type.execute(&valet).arg("install").spawn()?.wait()?; + run_type.execute(&valet).arg("install").check_run()?; } Ok(()) diff --git a/src/steps/git.rs b/src/steps/git.rs index 6dcb055a..bd08adac 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::RunType; use crate::terminal::print_separator; -use crate::utils::{which, Check}; +use crate::utils::which; use log::{debug, error}; use std::collections::HashSet; use std::io; @@ -70,17 +70,13 @@ impl Git { .execute(git) .args(&["pull", "--rebase", "--autostash"]) .current_dir(&path) - .spawn()? - .wait()? - .check()?; + .check_run()?; run_type .execute(git) .args(&["submodule", "update", "--init", "--recursive"]) .current_dir(&path) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() diff --git a/src/steps/node.rs b/src/steps/node.rs index 1d5edc27..be98b559 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -30,12 +30,7 @@ impl NPM { } fn upgrade(&self, run_type: RunType) -> Result<(), Error> { - run_type - .execute(&self.command) - .args(&["update", "-g"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&self.command).args(&["update", "-g"]).check_run()?; Ok(()) } @@ -61,12 +56,7 @@ pub fn yarn_global_update(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Yarn"); let success = || -> Result<(), Error> { - run_type - .execute(&yarn) - .args(&["global", "upgrade", "-s"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&yarn).args(&["global", "upgrade", "-s"]).check_run()?; Ok(()) }() .is_ok(); diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index d4e40eea..8c2136dc 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -15,9 +15,7 @@ pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Option<(&'s run_type .execute(sudo) .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); @@ -35,12 +33,7 @@ pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Option<(&' if let Some(sudo) = sudo { let success = || -> Result<(), Error> { - run_type - .execute(sudo) - .args(&["/usr/sbin/pkg", "upgrade"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(sudo).args(&["/usr/sbin/pkg", "upgrade"]).check_run()?; Ok(()) }() .is_ok(); diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index 36c39a3e..3bd99ebc 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -1,7 +1,7 @@ use crate::error::{Error, ErrorKind}; use crate::executor::RunType; use crate::terminal::{print_separator, print_warning}; -use crate::utils::{which, Check}; +use crate::utils::which; use failure::ResultExt; use std::fs; use std::path::PathBuf; @@ -115,26 +115,16 @@ It's dangerous to run yay since Python based AUR packages will be installed in t return Err(ErrorKind::NotSystemPython)?; } } - run_type.execute(yay).spawn()?.wait()?.check()?; + run_type.execute(yay).check_run()?; } else if let Some(sudo) = &sudo { - run_type - .execute(&sudo) - .args(&["/usr/bin/pacman", "-Syu"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/pacman", "-Syu"]).check_run()?; } else { print_warning("No sudo or yay detected. Skipping system upgrade"); } if cleanup { if let Some(sudo) = &sudo { - run_type - .execute(&sudo) - .args(&["/usr/bin/pacman", "-Scc"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/pacman", "-Scc"]).check_run()?; } } @@ -143,12 +133,7 @@ It's dangerous to run yay since Python based AUR packages will be installed in t fn upgrade_redhat(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - run_type - .execute(&sudo) - .args(&["/usr/bin/yum", "upgrade"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/yum", "upgrade"]).check_run()?; } else { print_warning("No sudo detected. Skipping system upgrade"); } @@ -161,16 +146,12 @@ fn upgrade_opensuse(sudo: &Option, run_type: RunType) -> Result<(), Err run_type .execute(&sudo) .args(&["/usr/bin/zypper", "refresh"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; run_type .execute(&sudo) .args(&["/usr/bin/zypper", "dist-upgrade"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; } else { print_warning("No sudo detected. Skipping system upgrade"); } @@ -183,9 +164,7 @@ fn upgrade_void(sudo: &Option, run_type: RunType) -> Result<(), Error> run_type .execute(&sudo) .args(&["/usr/bin/xbps-install", "-Su"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; } else { print_warning("No sudo detected. Skipping system upgrade"); } @@ -195,12 +174,7 @@ fn upgrade_void(sudo: &Option, run_type: RunType) -> Result<(), Error> fn upgrade_fedora(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - run_type - .execute(&sudo) - .args(&["/usr/bin/dnf", "upgrade"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/dnf", "upgrade"]).check_run()?; } else { print_warning("No sudo detected. Skipping system upgrade"); } @@ -211,13 +185,7 @@ fn upgrade_fedora(sudo: &Option, run_type: RunType) -> Result<(), Error fn upgrade_gentoo(sudo: &Option, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { if let Some(layman) = which("layman") { - run_type - .execute(&sudo) - .arg(layman) - .args(&["-s", "ALL"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).arg(layman).args(&["-s", "ALL"]).check_run()?; } println!("Syncing portage"); @@ -225,21 +193,17 @@ fn upgrade_gentoo(sudo: &Option, run_type: RunType) -> Result<(), Error .execute(&sudo) .arg("/usr/bin/emerge") .args(&["-q", "--sync"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; if let Some(eix_update) = which("eix-update") { - run_type.execute(&sudo).arg(eix_update).spawn()?.wait()?; + run_type.execute(&sudo).arg(eix_update).check_run()?; } run_type .execute(&sudo) .arg("/usr/bin/emerge") .args(&["-uDNa", "world"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; } else { print_warning("No sudo detected. Skipping system upgrade"); } @@ -249,34 +213,20 @@ fn upgrade_gentoo(sudo: &Option, run_type: RunType) -> Result<(), Error fn upgrade_debian(sudo: &Option, cleanup: bool, run_type: RunType) -> Result<(), Error> { if let Some(sudo) = &sudo { - run_type - .execute(&sudo) - .args(&["/usr/bin/apt", "update"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/apt", "update"]).check_run()?; run_type .execute(&sudo) .args(&["/usr/bin/apt", "dist-upgrade"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; if cleanup { - run_type - .execute(&sudo) - .args(&["/usr/bin/apt", "clean"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).args(&["/usr/bin/apt", "clean"]).check_run()?; run_type .execute(&sudo) .args(&["/usr/bin/apt", "autoremove"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; } } else { print_warning("No sudo detected. Skipping system upgrade"); @@ -292,7 +242,7 @@ pub fn run_needrestart(sudo: &Option, run_type: RunType) -> Option<(&'s print_separator("Check for needed restarts"); let success = || -> Result<(), Error> { - run_type.execute(&sudo).arg(needrestart).spawn()?.wait()?.check()?; + run_type.execute(&sudo).arg(needrestart).check_run()?; Ok(()) }() @@ -311,13 +261,8 @@ pub fn run_fwupdmgr(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Firmware upgrades"); let success = || -> Result<(), Error> { - run_type.execute(&fwupdmgr).arg("refresh").spawn()?.wait()?.check()?; - run_type - .execute(&fwupdmgr) - .arg("get-updates") - .spawn()? - .wait()? - .check()?; + run_type.execute(&fwupdmgr).arg("refresh").check_run()?; + run_type.execute(&fwupdmgr).arg("get-updates").check_run()?; Ok(()) }() .is_ok(); @@ -337,9 +282,7 @@ pub fn flatpak_user_update(run_type: RunType) -> Option<(&'static str, bool)> { run_type .execute(&flatpak) .args(&["update", "--user", "-y"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); @@ -360,9 +303,7 @@ pub fn flatpak_global_update(sudo: &Option, run_type: RunType) -> Optio run_type .execute(&sudo) .args(&[flatpak.to_str().unwrap(), "update", "-y"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); @@ -385,9 +326,7 @@ pub fn run_snap(sudo: &Option, run_type: RunType) -> Option<(&'static s run_type .execute(&sudo) .args(&[snap.to_str().unwrap(), "refresh"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() @@ -408,12 +347,7 @@ pub fn run_etc_update(sudo: &Option, run_type: RunType) -> Option<(&'st print_separator("etc-update"); let success = || -> Result<(), Error> { - run_type - .execute(&sudo) - .arg(&etc_update.to_str().unwrap()) - .spawn()? - .wait()? - .check()?; + run_type.execute(&sudo).arg(&etc_update.to_str().unwrap()).check_run()?; Ok(()) }() diff --git a/src/steps/os/macos.rs b/src/steps/os/macos.rs index ddf7eed3..b8b5dc8f 100644 --- a/src/steps/os/macos.rs +++ b/src/steps/os/macos.rs @@ -1,7 +1,6 @@ use crate::error::Error; use crate::executor::RunType; use crate::terminal::print_separator; -use crate::utils::Check; #[must_use] pub fn upgrade_macos(run_type: RunType) -> Option<(&'static str, bool)> { @@ -11,9 +10,7 @@ pub fn upgrade_macos(run_type: RunType) -> Option<(&'static str, bool)> { run_type .execute("softwareupdate") .args(&["--install", "--all"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index b0e80f30..32f51836 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::RunType; use crate::terminal::print_separator; -use crate::utils::{which, Check}; +use crate::utils::which; use directories::BaseDirs; pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { @@ -13,9 +13,7 @@ pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static st run_type .execute(zsh) .args(&["-c", "source ~/.zshrc && zplug update"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); @@ -36,15 +34,8 @@ pub fn run_fisher(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static s run_type .execute(&fish) .args(&["-c", "fisher self-update"]) - .spawn()? - .wait()? - .check()?; - run_type - .execute(&fish) - .args(&["-c", "fisher"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; + run_type.execute(&fish).args(&["-c", "fisher"]).check_run()?; Ok(()) }() .is_ok(); @@ -62,16 +53,11 @@ pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Option<(&'static str, b print_separator("Brew"); let inner = || -> Result<(), Error> { - run_type.execute(&brew).arg("update").spawn()?.wait()?; - run_type.execute(&brew).arg("upgrade").spawn()?.wait()?; - run_type - .execute(&brew) - .args(&["cask", "upgrade"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&brew).arg("update").check_run()?; + run_type.execute(&brew).arg("upgrade").check_run()?; + run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; if cleanup { - run_type.execute(&brew).arg("cleanup").spawn()?.wait()?; + run_type.execute(&brew).arg("cleanup").check_run()?; } Ok(()) }; @@ -89,8 +75,8 @@ pub fn run_nix(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Nix"); let inner = || -> Result<(), Error> { - run_type.execute(&nix).arg("upgrade-nix").spawn()?.wait()?.check()?; - run_type.execute(&nix_env).arg("--upgrade").spawn()?.wait()?.check()?; + run_type.execute(&nix).arg("upgrade-nix").check_run()?; + run_type.execute(&nix_env).arg("--upgrade").check_run()?; Ok(()) }; diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 23ae52e5..6a209656 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -13,12 +13,7 @@ pub fn run_chocolatey(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Chocolatey"); let success = || -> Result<(), Error> { - run_type - .execute(&choco) - .args(&["upgrade", "all"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&choco).args(&["upgrade", "all"]).check_run()?; Ok(()) }() .is_ok(); @@ -35,13 +30,8 @@ pub fn run_scoop(run_type: RunType) -> Option<(&'static str, bool)> { print_separator("Scoop"); let success = || -> Result<(), Error> { - run_type.execute(&scoop).args(&["update"]).spawn()?.wait()?.check()?; - run_type - .execute(&scoop) - .args(&["update", "*"]) - .spawn()? - .wait()? - .check()?; + run_type.execute(&scoop).args(&["update"]).check_run()?; + run_type.execute(&scoop).args(&["update", "*"]).check_run()?; Ok(()) }() .is_ok(); @@ -102,12 +92,7 @@ impl Powershell { print_separator("Powershell Modules Update"); let success = || -> Result<(), Error> { - run_type - .execute(&powershell) - .arg("Update-Module") - .spawn()? - .wait()? - .check()?; + run_type.execute(&powershell).arg("Update-Module").check_run()?; Ok(()) }() .is_ok(); @@ -128,9 +113,7 @@ impl Powershell { run_type .execute(&powershell) .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) - .spawn()? - .wait()? - .check()?; + .check_run()?; Ok(()) }() .is_ok(); diff --git a/src/steps/tmux.rs b/src/steps/tmux.rs index 93c2f0ab..60dff9b6 100644 --- a/src/steps/tmux.rs +++ b/src/steps/tmux.rs @@ -19,7 +19,7 @@ pub fn run_tpm(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, print_separator("tmux plugins"); let success = || -> Result<(), Error> { - run_type.execute(&tpm).arg("all").spawn()?.wait()?; + run_type.execute(&tpm).arg("all").check_run()?; Ok(()) }() .is_ok(); diff --git a/src/steps/vim.rs b/src/steps/vim.rs index b617e696..045541f9 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::RunType; use crate::terminal::print_separator; -use crate::utils::{which, Check, PathExt}; +use crate::utils::{which, PathExt}; use directories::BaseDirs; use std::fs; use std::path::PathBuf; @@ -69,9 +69,7 @@ fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, ru "-s", "-V1", ]) - .spawn()? - .wait()? - .check()?; + .check_run()?; println!(); From b88d41f3db1cfcdc7a2faffcb27227a4bf6861d5 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 31 Dec 2018 22:23:04 +0200 Subject: [PATCH 072/140] Reduced multiple calls to context --- src/self_update.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/self_update.rs b/src/self_update.rs index 8b461246..3f3f63c3 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -17,18 +17,18 @@ pub fn self_update() -> Result<(), Error> { let target = self_update_crate::get_target().context(ErrorKind::SelfUpdate)?; let result = Update::configure() - .context(ErrorKind::SelfUpdate)? - .repo_owner("r-darwish") - .repo_name("topgrade") - .target(&target) - .bin_name(if cfg!(windows) { "topgrade.exe" } else { "topgrade" }) - .show_output(false) - .show_download_progress(true) - .current_version(self_update_crate::cargo_crate_version!()) - .no_confirm(true) - .build() - .context(ErrorKind::SelfUpdate)? - .update2() + .and_then(|mut u| { + u.repo_owner("r-darwish") + .repo_name("topgrade") + .target(&target) + .bin_name(if cfg!(windows) { "topgrade.exe" } else { "topgrade" }) + .show_output(false) + .show_download_progress(true) + .current_version(self_update_crate::cargo_crate_version!()) + .no_confirm(true) + .build() + }) + .and_then(|u| u.update2()) .context(ErrorKind::SelfUpdate)?; if let GitHubUpdateStatus::Updated(release) = &result { From 4628e0c2b36bd4db8ca513b7ed4b806947715b7b Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Jan 2019 09:55:20 +0200 Subject: [PATCH 073/140] Dependencies bump --- Cargo.lock | 103 +++++++++++++++++++++++++++++++---------------------- Cargo.toml | 8 ++--- 2 files changed, 64 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fb09bdf4..f344ecd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,3 +1,11 @@ +[[package]] +name = "MacTypes-sys" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "adler32" version = "1.0.3" @@ -48,7 +56,7 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -57,7 +65,7 @@ dependencies = [ [[package]] name = "backtrace-sys" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", @@ -141,7 +149,7 @@ dependencies = [ [[package]] name = "clicolors-control" -version = "0.3.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -160,11 +168,12 @@ dependencies = [ [[package]] name = "console" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "clicolors-control 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -256,6 +265,11 @@ name = "either" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "encode_unicode" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "encoding_rs" version = "0.8.13" @@ -278,16 +292,16 @@ dependencies = [ [[package]] name = "failure" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -303,7 +317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -669,7 +683,7 @@ dependencies = [ "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -967,7 +981,7 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.44" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -975,7 +989,7 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1023,8 +1037,8 @@ dependencies = [ "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1085,14 +1099,15 @@ dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1108,7 +1123,7 @@ dependencies = [ "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1129,15 +1144,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.82" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.82" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1147,12 +1162,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1162,7 +1177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1252,7 +1267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1273,7 +1288,7 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1292,7 +1307,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1326,7 +1341,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1490,23 +1505,23 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "topgrade" version = "1.3.0" dependencies = [ - "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1644,7 +1659,7 @@ name = "which" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1724,6 +1739,7 @@ dependencies = [ ] [metadata] +"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" @@ -1731,7 +1747,7 @@ dependencies = [ "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" -"checksum backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcce89e5ad5c8949caa9434501f7b55415b3e7ad5270cb88c75a8d35e8f1279" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" @@ -1742,9 +1758,9 @@ dependencies = [ "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum clicolors-control 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51872be694bb3bcbd1ea95c6dd467c2c46c6c64d287e1c9084ace7c3116ae9c0" +"checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ba5561f4d4d89e0f246d4dd83846d96f617e886b96c7aee36e68791c98f89ce" +"checksum console 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4ceeb6d030ed175896450ad583a39e67a77b8b2ab8802c2aae594112adc783a2" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" @@ -1755,10 +1771,11 @@ dependencies = [ "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" +"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" "checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" -"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" -"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" +"checksum failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf" +"checksum failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c395a14ab27b42704e85bf2435c5c51f334ad7a96e16fe23c6e63a1cad6cc12" "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" "checksum flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2291c165c8e703ee54ef3055ad6188e3d51108e2ded18e9f2476e774fc5ad3d4" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" @@ -1833,7 +1850,7 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70" +"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" @@ -1847,13 +1864,13 @@ dependencies = [ "checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" -"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" +"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" "checksum self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)" = "" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6" -"checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154" -"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" +"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" +"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" +"checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" diff --git a/Cargo.toml b/Cargo.toml index eb5270ee..9822ee20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,9 @@ edition = "2018" [dependencies] directories = "1.0.2" -failure = "0.1.3" -failure_derive = "0.1.3" -serde = { version = "1.0.82", features = ["derive"] } +failure = "0.1.4" +failure_derive = "0.1.4" +serde = { version = "1.0.84", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" @@ -20,7 +20,7 @@ structopt = "0.2.14" log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" -console = "0.7.1" +console = "0.7.2" self_update_crate = { version = "0.5.0", optional = true, package = "self_update" } lazy_static = "1.2.0" From d874949af4a3d2e23f9f6d79dfcce0eb63744216 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Jan 2019 09:56:28 +0200 Subject: [PATCH 074/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f344ecd1..b26de089 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1510,7 +1510,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.3.0" +version = "1.4.0" dependencies = [ "console 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 9822ee20..111e845f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.3.0" +version = "1.4.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From f8921579a7e7c7060d490ab4605725c0a81ec50b Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Jan 2019 10:12:35 +0200 Subject: [PATCH 075/140] Constrain the version of console 0.7.2 is broken in FreeBSD --- Cargo.lock | 24 +++++++++++++----------- Cargo.toml | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b26de089..855dbc95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,6 +147,14 @@ dependencies = [ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "clicolors-control" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "clicolors-control" version = "1.0.0" @@ -168,12 +176,11 @@ dependencies = [ [[package]] name = "console" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "clicolors-control 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -265,11 +272,6 @@ name = "either" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "encode_unicode" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "encoding_rs" version = "0.8.13" @@ -1512,7 +1514,7 @@ dependencies = [ name = "topgrade" version = "1.4.0" dependencies = [ - "console 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1758,9 +1760,10 @@ dependencies = [ "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" +"checksum clicolors-control 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "495303f76458db51aa330df9510cfbb2e3ad57c6b82da7b38aad2a89088a91da" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4ceeb6d030ed175896450ad583a39e67a77b8b2ab8802c2aae594112adc783a2" +"checksum console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ba5561f4d4d89e0f246d4dd83846d96f617e886b96c7aee36e68791c98f89ce" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" @@ -1771,7 +1774,6 @@ dependencies = [ "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" "checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf" diff --git a/Cargo.toml b/Cargo.toml index 111e845f..906c5f81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ structopt = "0.2.14" log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" -console = "0.7.2" +console = "=0.7.1" self_update_crate = { version = "0.5.0", optional = true, package = "self_update" } lazy_static = "1.2.0" From 39d410059117c5b4018aa9e6e954fec5d6fd2723 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Jan 2019 10:20:25 +0200 Subject: [PATCH 076/140] Fix a warning --- ci/script.sh | 2 +- src/steps/os/freebsd.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/script.sh b/ci/script.sh index db416121..b2d8a441 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -5,7 +5,7 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { cargo fmt --all -- --check - cargo clippy --all-targets --all-features -- -D warnings + cross clippy --all-targets --all-features -- -D warnings cross check --target $TARGET cross check --target $TARGET --release cross check --target $TARGET --all-features diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 8c2136dc..8b7c6e1b 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -1,7 +1,6 @@ use crate::error::{Error, ErrorKind}; use crate::executor::RunType; use crate::terminal::{print_separator, print_warning}; -use crate::utils::Check; use failure::ResultExt; use std::path::PathBuf; use std::process::Command; From 1b2308aaef55dc94abc2b5897a221be5942a9209 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Jan 2019 22:22:07 +0200 Subject: [PATCH 077/140] Add check_output --- src/executor.rs | 17 +++++++++++++++++ src/steps/generic.rs | 21 +++++++-------------- src/steps/git.rs | 15 +++++---------- src/steps/node.rs | 19 ++++++------------- src/steps/os/windows.rs | 25 ++++++++----------------- 5 files changed, 43 insertions(+), 54 deletions(-) diff --git a/src/executor.rs b/src/executor.rs index 2807eae5..0540c038 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -176,3 +176,20 @@ impl Check for ExecutorExitStatus { } } } + +/// Extension methods for `std::process::Command` +pub trait CommandExt { + /// Run the command, wait for it to complete, check the return code and decode the output as UTF-8. + fn check_output(&mut self) -> Result; +} + +impl CommandExt for Command { + fn check_output(&mut self) -> Result { + let output = self.output().context(ErrorKind::ProcessExecution)?; + let status = output.status; + if !status.success() { + Err(ErrorKind::ProcessFailed(status))? + } + Ok(String::from_utf8(output.stdout).context(ErrorKind::ProcessExecution)?) + } +} diff --git a/src/steps/generic.rs b/src/steps/generic.rs index c43eeedd..eaf19882 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -1,9 +1,8 @@ -use crate::error::{Error, ErrorKind}; -use crate::executor::RunType; +use crate::error::Error; +use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{self, Check, PathExt}; +use crate::utils::{self, PathExt}; use directories::BaseDirs; -use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -202,16 +201,10 @@ pub fn run_custom_command(name: &str, command: &str, run_type: RunType) -> Resul #[must_use] pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(composer) = utils::which("composer") { - let composer_home = || -> Result { - let output = Command::new(&composer) - .args(&["global", "config", "--absolute", "home"]) - .output() - .context(ErrorKind::ProcessExecution)?; - output.status.check()?; - Ok(PathBuf::from( - &String::from_utf8(output.stdout).context(ErrorKind::ProcessExecution)?, - )) - }(); + let composer_home = Command::new(&composer) + .args(&["global", "config", "--absolute", "home"]) + .check_output() + .map(PathBuf::from); if let Ok(composer_home) = composer_home { if composer_home.is_descendant_of(base_dirs.home_dir()) { diff --git a/src/steps/git.rs b/src/steps/git.rs index bd08adac..badf113b 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::executor::RunType; +use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::which; use log::{debug, error}; @@ -38,15 +38,10 @@ impl Git { let output = Command::new(&git) .args(&["rev-parse", "--show-toplevel"]) .current_dir(path) - .output(); - - if let Ok(output) = output { - if !output.status.success() { - return None; - } - - return Some(String::from_utf8_lossy(&output.stdout).trim().to_string()); - } + .check_output() + .ok() + .map(|output| output.trim().to_string()); + return output; } } Err(e) => match e.kind() { diff --git a/src/steps/node.rs b/src/steps/node.rs index be98b559..b2f6e702 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -1,9 +1,8 @@ -use crate::error::{Error, ErrorKind}; -use crate::executor::RunType; +use crate::error::Error; +use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{which, Check, PathExt}; +use crate::utils::{which, PathExt}; use directories::BaseDirs; -use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -17,16 +16,10 @@ impl NPM { } fn root(&self) -> Result { - let output = Command::new(&self.command) + Command::new(&self.command) .args(&["root", "-g"]) - .output() - .context(ErrorKind::ProcessExecution)?; - - output.status.check()?; - - Ok(PathBuf::from( - &String::from_utf8(output.stdout).context(ErrorKind::ProcessExecution)?, - )) + .check_output() + .map(PathBuf::from) } fn upgrade(&self, run_type: RunType) -> Result<(), Error> { diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 6a209656..d45f92ed 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -1,8 +1,7 @@ -use crate::error::{Error, ErrorKind}; -use crate::executor::RunType; +use crate::error::Error; +use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{self, which, Check}; -use failure::ResultExt; +use crate::utils::{self, which}; use log::error; use std::path::PathBuf; use std::process::Command; @@ -57,9 +56,7 @@ impl Powershell { || -> Result<(), Error> { Command::new(&powershell) .args(&["-Command", &format!("Get-Command {}", command)]) - .output() - .context(ErrorKind::ProcessExecution)? - .check()?; + .check_output()?; Ok(()) }() .is_ok() @@ -67,16 +64,10 @@ impl Powershell { pub fn profile(&self) -> Option { if let Some(powershell) = &self.path { - let result = || -> Result { - let output = Command::new(powershell) - .args(&["-Command", "echo $profile"]) - .output() - .context(ErrorKind::ProcessExecution)?; - output.status.check()?; - Ok(PathBuf::from( - String::from_utf8_lossy(&output.stdout).trim().to_string(), - )) - }(); + let result = Command::new(powershell) + .args(&["-Command", "echo $profile"]) + .check_output() + .map(PathBuf::from); match result { Err(e) => error!("Error getting Powershell profile: {}", e), From 71d31fcdc50e635bd12470681633ac504647dabf Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 4 Jan 2019 11:01:24 +0200 Subject: [PATCH 078/140] Fix wrong stub value in Windows Ctrl+C --- src/ctrlc/windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctrlc/windows.rs b/src/ctrlc/windows.rs index 56d413bb..65ac4ef9 100644 --- a/src/ctrlc/windows.rs +++ b/src/ctrlc/windows.rs @@ -1,7 +1,7 @@ //! A stub for Ctrl + C handling. pub fn interrupted() -> bool { - true + false } pub fn unset_interrupted() {} From ab5b02c6c855c854da15a90593505334629865a2 Mon Sep 17 00:00:00 2001 From: Edvin Malinovskis Date: Sun, 13 Jan 2019 14:10:23 +0000 Subject: [PATCH 079/140] Add `--no-ruby` flag (#106) --- src/config.rs | 4 ++++ src/main.rs | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index a8da781a..391d1c38 100644 --- a/src/config.rs +++ b/src/config.rs @@ -76,6 +76,10 @@ pub struct Opt { #[structopt(long = "no-vim")] pub no_vim: bool, + /// Don't upgrade ruby gems + #[structopt(long = "no-gem")] + pub no_gem: bool, + /// Print what would be done #[structopt(short = "n", long = "dry-run")] pub dry_run: bool, diff --git a/src/main.rs b/src/main.rs index 01f0a263..4e938108 100644 --- a/src/main.rs +++ b/src/main.rs @@ -204,7 +204,10 @@ fn run() -> Result<(), Error> { target_os = "dragonfly" )))] report.push_result(execute(|| generic::run_apm(run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), opt.no_retry)?); + + if !opt.no_gem { + report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), opt.no_retry)?); + } #[cfg(target_os = "linux")] { From 235df19ac53d1334ec45f76f4a3824574c9fc910 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 13 Jan 2019 22:54:51 +0200 Subject: [PATCH 080/140] No need for patched self_upgrade --- Cargo.lock | 8 ++++---- Cargo.toml | 5 +---- src/self_update.rs | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 855dbc95..56cef301 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1116,8 +1116,8 @@ dependencies = [ [[package]] name = "self_update" -version = "0.5.0" -source = "git+https://github.com/r-darwish/self_update?branch=github-extended#e0408201c5ad575a6a4b70e49882a0a5f6a213d6" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1522,7 +1522,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)", + "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1867,7 +1867,7 @@ dependencies = [ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" "checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" -"checksum self_update 0.5.0 (git+https://github.com/r-darwish/self_update?branch=github-extended)" = "" +"checksum self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4997d828329f3bea234b5efd084f0ee07b284a556d64023cc0e3e47cc44d74" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" diff --git a/Cargo.toml b/Cargo.toml index 906c5f81..e72b623a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" console = "=0.7.1" -self_update_crate = { version = "0.5.0", optional = true, package = "self_update" } +self_update_crate = { version = "0.5.1", optional = true, package = "self_update" } lazy_static = "1.2.0" [target.'cfg(unix)'.dependencies] @@ -30,9 +30,6 @@ nix = "0.12.0" [profile.release] lto = true -[patch.crates-io] -self_update = { git = "https://github.com/r-darwish/self_update", branch = "github-extended" } - [features] default = [] diff --git a/src/self_update.rs b/src/self_update.rs index 3f3f63c3..eb7725ef 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -28,7 +28,7 @@ pub fn self_update() -> Result<(), Error> { .no_confirm(true) .build() }) - .and_then(|u| u.update2()) + .and_then(|u| u.update_extended()) .context(ErrorKind::SelfUpdate)?; if let GitHubUpdateStatus::Updated(release) = &result { From 198009c48a1c1d8c39c04c844c8839c18b3d5458 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 14 Jan 2019 09:28:20 +0200 Subject: [PATCH 081/140] Dependencies bump --- Cargo.lock | 498 ++++++++++++++++++++++++----------------------------- Cargo.toml | 6 +- 2 files changed, 229 insertions(+), 275 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 56cef301..2ad7ea79 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "MacTypes-sys" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -40,7 +40,7 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -58,8 +58,8 @@ dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -69,7 +69,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -81,6 +81,14 @@ dependencies = [ "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "base64" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bitflags" version = "1.0.4" @@ -111,7 +119,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -120,7 +128,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -147,14 +155,6 @@ dependencies = [ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "clicolors-control" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "clicolors-control" version = "1.0.0" @@ -162,7 +162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -176,14 +176,15 @@ dependencies = [ [[package]] name = "console" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "clicolors-control 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -196,7 +197,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -204,7 +205,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -223,6 +224,17 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-channel" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-deque" version = "0.6.3" @@ -258,7 +270,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -272,9 +284,14 @@ name = "either" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "encode_unicode" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "encoding_rs" -version = "0.8.13" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -294,21 +311,21 @@ dependencies = [ [[package]] name = "failure" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -318,7 +335,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -328,7 +345,7 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -381,7 +398,7 @@ dependencies = [ [[package]] name = "h2" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -391,9 +408,9 @@ dependencies = [ "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -429,26 +446,26 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.19" +version = "0.12.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -463,9 +480,9 @@ dependencies = [ "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -476,9 +493,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -501,7 +518,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -536,7 +553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.45" +version = "0.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -577,7 +594,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -588,7 +605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "mime" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -599,9 +616,9 @@ name = "mime_guess" version = "2.0.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -611,7 +628,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -629,7 +646,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -643,24 +660,14 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "mio-uds" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "miow" version = "0.2.1" @@ -678,7 +685,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -695,7 +702,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -707,7 +714,7 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -721,7 +728,7 @@ name = "num_cpus" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -733,7 +740,7 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -748,7 +755,7 @@ version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -763,41 +770,20 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -809,9 +795,9 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -822,33 +808,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "phf" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_codegen" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_generator" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_shared" -version = "0.7.23" +version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -888,11 +874,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -903,36 +891,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_chacha" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -964,6 +951,19 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_os" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_pcg" version = "0.1.1" @@ -975,7 +975,15 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.1.0" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rdrand" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1024,33 +1032,36 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", + "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-demangle" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1100,7 +1111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1111,7 +1122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1123,9 +1134,9 @@ dependencies = [ "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1159,12 +1170,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1195,7 +1206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "slab" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1213,7 +1224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "string" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1238,12 +1249,12 @@ dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.23" +version = "0.15.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1258,7 +1269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1268,7 +1279,7 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1278,7 +1289,7 @@ name = "tempdir" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1288,8 +1299,8 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1308,7 +1319,7 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1318,7 +1329,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1339,44 +1350,29 @@ dependencies = [ [[package]] name = "time" -version = "0.1.41" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "tokio-codec" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1385,30 +1381,21 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-executor" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "tokio-fs" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "tokio-io" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1418,7 +1405,7 @@ dependencies = [ [[package]] name = "tokio-reactor" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1427,37 +1414,38 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-tcp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1467,39 +1455,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "tokio-udp" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "tokio-uds" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1514,11 +1471,11 @@ dependencies = [ name = "topgrade" version = "1.4.0" dependencies = [ - "console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1661,8 +1618,8 @@ name = "which" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1725,7 +1682,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1737,7 +1694,7 @@ dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] @@ -1750,6 +1707,7 @@ dependencies = [ "checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" @@ -1760,24 +1718,25 @@ dependencies = [ "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum clicolors-control 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "495303f76458db51aa330df9510cfbb2e3ad57c6b82da7b38aad2a89088a91da" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ba5561f4d4d89e0f246d4dd83846d96f617e886b96c7aee36e68791c98f89ce" +"checksum console 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ecc3753530b959618f617b0cd6494526008d98687f1af5d8f9fa83fa9cdbb594" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" +"checksum crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "137bc235f622ffaa0428e3854e24acb53291fc0b3ff6fb2cb75a8be6fb02f06b" "checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" "checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" "checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be" +"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" +"checksum encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)" = "a69d152eaa438a291636c1971b0a370212165ca8a75759eb66818c5ce9b538f7" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" -"checksum failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf" -"checksum failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c395a14ab27b42704e85bf2435c5c51f334ad7a96e16fe23c6e63a1cad6cc12" +"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" +"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" "checksum flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2291c165c8e703ee54ef3055ad6188e3d51108e2ded18e9f2476e774fc5ad3d4" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" @@ -1787,12 +1746,12 @@ dependencies = [ "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac030ae20dee464c5d0f36544d8b914a6bc606da44a57e052d2b0f5dae129e0" +"checksum h2 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "30e0b8e55b4d7ffedade2b9605851f8e85f5010663e7ad170ef3c0f0681bc43f" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" +"checksum hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)" = "80eeda66c9ef8e18f5122fff2c54604c053420b11dae951cfb74cf1dcba2e93f" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1803,20 +1762,19 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74" +"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" -"checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630" +"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" "checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" "checksum miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ad30a47319c16cde58d0314f5d98202a80c9083b5f61178457403dfb14e509c" "checksum miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28edaef377517fd9fe3e085c37d892ce7acd1fbeab9239c5a36eec352d8a8b7e" "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" -"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" @@ -1827,38 +1785,38 @@ dependencies = [ "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" -"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" -"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "deb73390ab68d81992bd994d145f697451bb0b54fd39738e72eef32458ad6907" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6" -"checksum phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "7d187f00cd98d5afbcd8898f6cf181743a449162aeb329dcd2f3849009e605ad" -"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b" -"checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" +"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" +"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" -"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" +"checksum rand 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dee497e66d8d76bf08ce20c8d36e16f93749ab0bf89975b4f8ae5cee660c2da2" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a" -"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" +"checksum rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3906503e80ac6cbcacb2c2973fa8e473f24d7e2747c8c92bb230c2441cad96b5" +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f46fbd5550acf75b0c2730f5dd1873751daf9beb8f11b44027778fae50d7feca" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" -"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ab52e462d1e15891441aeefadff68bdea005174328ce3da0a314f2ad313ec837" -"checksum rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7" +"checksum reqwest 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0e60f169af3915c294818d55dde549f00d2966cef36d6c5e7255d75df3f2b16f" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" @@ -1872,18 +1830,18 @@ dependencies = [ "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" "checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" -"checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" +"checksum serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "dfb1277d4d0563e4593e0b8b5d23d744d277b55d2bc0bf1c38d0d8a6589d38aa" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" -"checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" +"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d" +"checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc" +"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" @@ -1893,19 +1851,15 @@ dependencies = [ "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" -"checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d" -"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" +"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" +"checksum tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4790d0be6f4ba6ae4f48190efa2ed7780c9e3567796abdb285003cf39840d9c5" "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" -"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" -"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" -"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" -"checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5" -"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" -"checksum tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "56c5556262383032878afad66943926a1d1f0967f17e94bd7764ceceb3b70e7f" +"checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" +"checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" +"checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" +"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" +"checksum tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "17465013014410310f9f61fa10bf4724803c149ea1d51efece131c38efca93aa" "checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" -"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" -"checksum tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "99ce87382f6c1a24b513a72c048b2c8efe66cb5161c9061d00bee510f08dc168" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" diff --git a/Cargo.toml b/Cargo.toml index e72b623a..724bd6a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ edition = "2018" [dependencies] directories = "1.0.2" -failure = "0.1.4" -failure_derive = "0.1.4" +failure = "0.1.5" +failure_derive = "0.1.5" serde = { version = "1.0.84", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } @@ -20,7 +20,7 @@ structopt = "0.2.14" log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" -console = "=0.7.1" +console = "0.7.3" self_update_crate = { version = "0.5.1", optional = true, package = "self_update" } lazy_static = "1.2.0" From bfcfe5b3fa248943fa307f4ce73f52779badbdd6 Mon Sep 17 00:00:00 2001 From: Edvin Malinovskis Date: Wed, 16 Jan 2019 08:51:43 +0000 Subject: [PATCH 082/140] Generic Blacklist implementation (#108) --- README.md | 11 +++++--- src/config.rs | 70 +++++++++++++++++++++++++++++++++++---------------- src/main.rs | 22 ++++++++-------- 3 files changed, 67 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 8009dc99..9aca09ec 100644 --- a/README.md +++ b/README.md @@ -110,11 +110,14 @@ Just run `topgrade`. It will run the following steps: Topgrade already runs inside tmux. This is useful when using topgrade on remote systems. * `-c/--cleanup` - Topgrade will instruct package managers to remove old or unused files * `-n/--dry-run` - Print what should be run. -* `--no-system` - Skip the system upgrade phase. -* `--no-git-repos` - Don't pull custom git repositories. -* `--no-emacs` - Don't upgrade Emacs packages or configuration files. +* `--disable system` - Skip the system upgrade phase. +* `--disable git-repos` - Don't pull custom git repositories. +* `--disable emacs` - Don't upgrade Emacs packages or configuration files. * `--no-retry` - Don't ask to retry failed steps. -* `--no-vim` - Don't upgrade Vim/NeoVim packages or configuration files. +* `--disable vim` - Don't upgrade Vim/NeoVim packages or configuration files. +* `--disable gem` - Don't upgrade ruby gems. + +`--disable` flags can also be combined like so: `--disable system vim` ## Customization You can place a configuration file at `~/.config/topgrade.toml` (on macOS `~/Library/Preferences/topgrade.toml`).. Here's an example: diff --git a/src/config.rs b/src/config.rs index 391d1c38..cc435342 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,15 +1,59 @@ use super::error::{Error, ErrorKind}; use directories::BaseDirs; use failure::ResultExt; +use lazy_static::lazy_static; use serde::Deserialize; use shellexpand; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashMap}; use std::fs; use structopt::StructOpt; use toml; type Commands = BTreeMap; +lazy_static! { + // While this is used to automatically generate possible value list everywhere in the code, the + // README.md file still needs to be manually updated. + static ref STEPS_MAPPING: HashMap<&'static str, Step> = { + let mut m = HashMap::new(); + + m.insert("system", Step::System); + m.insert("git-repos", Step::GitRepos); + m.insert("vim", Step::Vim); + m.insert("emacs", Step::Emacs); + m.insert("gem", Step::Gem); + + m + }; +} + +#[derive(Debug, Clone, PartialEq)] +pub enum Step { + /// Don't perform system upgrade + System, + /// Don't perform updates on configured git repos + GitRepos, + /// Don't upgrade Vim packages or configuration files + Vim, + /// Don't upgrade Emacs packages or configuration files + Emacs, + /// Don't upgrade ruby gems + Gem, +} + +impl Step { + fn possible_values() -> Vec<&'static str> { + STEPS_MAPPING.keys().cloned().collect() + } +} + +impl std::str::FromStr for Step { + type Err = structopt::clap::Error; + fn from_str(s: &str) -> Result { + Ok(STEPS_MAPPING.get(s).unwrap().clone()) + } +} + #[derive(Deserialize, Default)] pub struct Config { pre_commands: Option, @@ -60,26 +104,6 @@ pub struct Opt { #[structopt(short = "c", long = "cleanup")] pub cleanup: bool, - /// Don't perform system upgrade - #[structopt(long = "no-system")] - pub no_system: bool, - - /// Don't perform updates on configured git repos - #[structopt(long = "no-git-repos")] - pub no_git_repos: bool, - - /// Don't upgrade Emacs packages or configuration files - #[structopt(long = "no-emacs")] - pub no_emacs: bool, - - /// Don't upgrade Vim packages or configuration files - #[structopt(long = "no-vim")] - pub no_vim: bool, - - /// Don't upgrade ruby gems - #[structopt(long = "no-gem")] - pub no_gem: bool, - /// Print what would be done #[structopt(short = "n", long = "dry-run")] pub dry_run: bool, @@ -87,4 +111,8 @@ pub struct Opt { /// Do not ask to retry failed steps #[structopt(long = "no-retry")] pub no_retry: bool, + + /// Do not perform upgrades for the given steps + #[structopt(long = "disable", raw(possible_values = "&Step::possible_values()"))] + pub disable: Vec, } diff --git a/src/main.rs b/src/main.rs index 4e938108..15fb2948 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ mod steps; mod terminal; mod utils; -use self::config::Config; +use self::config::{Config, Step}; use self::error::{Error, ErrorKind}; use self::report::Report; use self::steps::*; @@ -101,7 +101,7 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - if !opt.no_system { + if !opt.disable.contains(&Step::System) { match &distribution { Ok(distribution) => { report.push_result(execute( @@ -130,11 +130,11 @@ fn run() -> Result<(), Error> { #[cfg(unix)] report.push_result(execute(|| unix::run_nix(run_type), opt.no_retry)?); - if !opt.no_emacs { + if !opt.disable.contains(&Step::Emacs) { git_repos.insert(base_dirs.home_dir().join(".emacs.d")); } - if !opt.no_vim { + if !opt.disable.contains(&Step::Vim) { git_repos.insert(base_dirs.home_dir().join(".vim")); git_repos.insert(base_dirs.home_dir().join(".config/nvim")); } @@ -155,7 +155,7 @@ fn run() -> Result<(), Error> { } } - if !opt.no_git_repos { + if !opt.disable.contains(&Step::GitRepos) { if let Some(custom_git_repos) = config.git_repos() { for git_repo in custom_git_repos { git_repos.insert(git_repo); @@ -176,7 +176,7 @@ fn run() -> Result<(), Error> { report.push_result(execute(|| generic::run_rustup(&base_dirs, run_type), opt.no_retry)?); report.push_result(execute(|| generic::run_cargo_update(run_type), opt.no_retry)?); - if !opt.no_emacs { + if !opt.disable.contains(&Step::Emacs) { report.push_result(execute(|| generic::run_emacs(&base_dirs, run_type), opt.no_retry)?); } @@ -185,7 +185,7 @@ fn run() -> Result<(), Error> { report.push_result(execute(|| generic::run_pipx_update(run_type), opt.no_retry)?); report.push_result(execute(|| generic::run_jetpack(run_type), opt.no_retry)?); - if !opt.no_vim { + if !opt.disable.contains(&Step::Vim) { report.push_result(execute(|| vim::upgrade_vim(&base_dirs, run_type), opt.no_retry)?); report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, run_type), opt.no_retry)?); } @@ -205,7 +205,7 @@ fn run() -> Result<(), Error> { )))] report.push_result(execute(|| generic::run_apm(run_type), opt.no_retry)?); - if !opt.no_gem { + if !opt.disable.contains(&Step::Gem) { report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), opt.no_retry)?); } @@ -233,21 +233,21 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "macos")] { - if !opt.no_system { + if !opt.disable.contains(&Step::System) { report.push_result(execute(|| macos::upgrade_macos(run_type), opt.no_retry)?); } } #[cfg(target_os = "freebsd")] { - if !opt.no_system { + if !opt.disable.contains(&Step::System) { report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, run_type), opt.no_retry)?); } } #[cfg(windows)] { - if !opt.no_system { + if !opt.disable.contains(&Step::System) { report.push_result(execute(|| powershell.windows_update(run_type), opt.no_retry)?); } } From d8a9111c485535f69402abb7d382275650e660f2 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 16 Jan 2019 11:24:37 +0200 Subject: [PATCH 083/140] Fix the documentation regrading the disable flag --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9aca09ec..75497482 100644 --- a/README.md +++ b/README.md @@ -110,14 +110,13 @@ Just run `topgrade`. It will run the following steps: Topgrade already runs inside tmux. This is useful when using topgrade on remote systems. * `-c/--cleanup` - Topgrade will instruct package managers to remove old or unused files * `-n/--dry-run` - Print what should be run. -* `--disable system` - Skip the system upgrade phase. -* `--disable git-repos` - Don't pull custom git repositories. -* `--disable emacs` - Don't upgrade Emacs packages or configuration files. +* `--disable [STEPS]` - Disable one or more steps: + * `system` - Skip the system upgrade phase. + * `git-repos` - Don't pull custom git repositories. + * `emacs` - Don't upgrade Emacs packages or configuration files. + * `vim` - Don't upgrade Vim/NeoVim packages or configuration files. + * `gem` - Don't upgrade ruby gems. * `--no-retry` - Don't ask to retry failed steps. -* `--disable vim` - Don't upgrade Vim/NeoVim packages or configuration files. -* `--disable gem` - Don't upgrade ruby gems. - -`--disable` flags can also be combined like so: `--disable system vim` ## Customization You can place a configuration file at `~/.config/topgrade.toml` (on macOS `~/Library/Preferences/topgrade.toml`).. Here's an example: From e9d76d185bb53d2fe4529760b2e8930f1b770772 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 16 Jan 2019 11:28:37 +0200 Subject: [PATCH 084/140] Use flatpak --system to update flatpak (fix #107) --- src/main.rs | 3 +-- src/steps/os/linux.rs | 28 +++++----------------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/main.rs b/src/main.rs index 15fb2948..4a1f8b0f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -211,8 +211,7 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_user_update(run_type), opt.no_retry)?); - report.push_result(execute(|| linux::flatpak_global_update(&sudo, run_type), opt.no_retry)?); + report.push_result(execute(|| linux::flatpak_update(run_type), opt.no_retry)?); report.push_result(execute(|| linux::run_snap(&sudo, run_type), opt.no_retry)?); } diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index 3bd99ebc..ce308577 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -274,7 +274,7 @@ pub fn run_fwupdmgr(run_type: RunType) -> Option<(&'static str, bool)> { } #[must_use] -pub fn flatpak_user_update(run_type: RunType) -> Option<(&'static str, bool)> { +pub fn flatpak_update(run_type: RunType) -> Option<(&'static str, bool)> { if let Some(flatpak) = which("flatpak") { print_separator("Flatpak User Packages"); @@ -283,6 +283,10 @@ pub fn flatpak_user_update(run_type: RunType) -> Option<(&'static str, bool)> { .execute(&flatpak) .args(&["update", "--user", "-y"]) .check_run()?; + run_type + .execute(&flatpak) + .args(&["update", "--system", "-y"]) + .check_run()?; Ok(()) }() .is_ok(); @@ -293,28 +297,6 @@ pub fn flatpak_user_update(run_type: RunType) -> Option<(&'static str, bool)> { None } -#[must_use] -pub fn flatpak_global_update(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(sudo) = sudo { - if let Some(flatpak) = which("flatpak") { - print_separator("Flatpak Global Packages"); - - let success = || -> Result<(), Error> { - run_type - .execute(&sudo) - .args(&[flatpak.to_str().unwrap(), "update", "-y"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("Flatpak Global Packages", success)); - } - } - - None -} - #[must_use] pub fn run_snap(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(sudo) = sudo { From 65e81872acfd53dd7d740b984e4e561b0ee885fe Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 21 Jan 2019 20:12:20 +0200 Subject: [PATCH 085/140] Fix retrival of Powershell profile path --- src/steps/os/windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index d45f92ed..2a6763fe 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -67,7 +67,7 @@ impl Powershell { let result = Command::new(powershell) .args(&["-Command", "echo $profile"]) .check_output() - .map(PathBuf::from); + .map(|output| PathBuf::from(output.trim())); match result { Err(e) => error!("Error getting Powershell profile: {}", e), From 84323d97294da6e03d1f21acd36328da33d875eb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 21 Jan 2019 20:12:56 +0200 Subject: [PATCH 086/140] Don't run Powershell in a dumb terminal (fix #110) --- src/steps/os/windows.rs | 8 ++++++-- src/terminal.rs | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 2a6763fe..fa5be586 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -1,6 +1,6 @@ use crate::error::Error; use crate::executor::{CommandExt, RunType}; -use crate::terminal::print_separator; +use crate::terminal::{is_dumb, print_separator}; use crate::utils::{self, which}; use log::error; use std::path::PathBuf; @@ -46,9 +46,13 @@ pub struct Powershell { } impl Powershell { + /// Returns a powershell instance. + /// + /// If the powershell binary is not found, or the current terminal is dumb + /// then the instance of this struct will skip all the powershell steps. pub fn new() -> Self { Powershell { - path: which("powershell"), + path: which("powershell").filter(|_| !is_dumb()), } } diff --git a/src/terminal.rs b/src/terminal.rs index 610b63a2..1b99988a 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -126,3 +126,8 @@ pub fn print_warning>(message: P) { pub fn print_result>(key: P, succeeded: bool) { TERMINAL.lock().unwrap().print_result(key, succeeded) } + +/// Tells whether the terminal is dumb. +pub fn is_dumb() -> bool { + TERMINAL.lock().unwrap().width.is_none() +} From ef010ce7b5956bd567a1f9e825e800c228647023 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 21 Jan 2019 20:17:44 +0200 Subject: [PATCH 087/140] Document the configuration path in Windows (fix #111) --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 75497482..b34922e3 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ Just run `topgrade`. It will run the following steps: * `--no-retry` - Don't ask to retry failed steps. ## Customization -You can place a configuration file at `~/.config/topgrade.toml` (on macOS `~/Library/Preferences/topgrade.toml`).. Here's an example: +Here's an example for a configuration file: ``` toml @@ -138,3 +138,11 @@ git_repos = [ will not proceed * `commands` - Custom upgrade steps. If any command fails it will be reported in the summary as all upgrade steps are reported, but it will not cause Topgrade to stop. + +### Configuration path + +The configuration should be placed in the following paths depending by the operating system: + +* **macOS** - `~/Library/Preferences/topgrade.toml` +* **Windows** - `%APPDATA%/topgrade.toml` +* **Other Unix systems** - `~/.config/topgrade.toml` From fad9cc665cf493af09b369e863e1ea97c541dc8e Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 21 Jan 2019 20:28:23 +0200 Subject: [PATCH 088/140] Fix warnings --- src/terminal.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/terminal.rs b/src/terminal.rs index 1b99988a..9f2f3e06 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -119,6 +119,7 @@ pub fn print_separator>(message: P) { TERMINAL.lock().unwrap().print_separator(message) } +#[allow(dead_code)] pub fn print_warning>(message: P) { TERMINAL.lock().unwrap().print_warning(message) } @@ -127,6 +128,7 @@ pub fn print_result>(key: P, succeeded: bool) { TERMINAL.lock().unwrap().print_result(key, succeeded) } +#[cfg(windows)] /// Tells whether the terminal is dumb. pub fn is_dumb() -> bool { TERMINAL.lock().unwrap().width.is_none() From f33d0e69360d84a05beb1e6d1450c3954e3fcadb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 21 Jan 2019 22:38:47 +0200 Subject: [PATCH 089/140] Shorten the test phase in the CI --- appveyor.yml | 9 +++------ ci/script.sh | 5 +---- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 72c518a2..bd610e04 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,17 +20,14 @@ install: - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION% - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - rustup component add rustfmt-preview clippy-preview - - cargo fmt --all -- --check - - cargo clippy --all-targets --all-features -- -D warnings - rustc -Vv - cargo -V test_script: - if [%APPVEYOR_REPO_TAG%]==[false] ( - cargo check --target %TARGET% && - cargo check --target %TARGET% --release && - cargo check --target %TARGET% --all-features && - cargo check --target %TARGET% --all-features --release + cargo fmt --all -- --check && + cargo clippy --all-targets --all-features -- -D warnings && + cargo clippy --all-targets -- -D warnings ) before_deploy: diff --git a/ci/script.sh b/ci/script.sh index b2d8a441..c3062300 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -5,11 +5,8 @@ set -ex # TODO This is the "test phase", tweak it as you see fit main() { cargo fmt --all -- --check + cross clippy --all-targets -- -D warnings cross clippy --all-targets --all-features -- -D warnings - cross check --target $TARGET - cross check --target $TARGET --release - cross check --target $TARGET --all-features - cross check --target $TARGET --release --all-features if [ ! -z $DISABLE_TESTS ]; then return From baa42ac6843e51f2502239c19195c592a3ba914c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 22 Jan 2019 11:43:39 +0200 Subject: [PATCH 090/140] Dependencies bump and new version --- Cargo.lock | 260 +++++++++++++++++++++++++++-------------------------- Cargo.toml | 8 +- 2 files changed, 135 insertions(+), 133 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ad7ea79..ba2376a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,9 +1,9 @@ [[package]] name = "MacTypes-sys" -version = "1.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -16,7 +16,7 @@ name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -40,14 +40,14 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "autocfg" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -55,10 +55,10 @@ name = "backtrace" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -69,7 +69,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -77,7 +77,7 @@ name = "base64" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -86,7 +86,7 @@ name = "base64" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -101,7 +101,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.2.7" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -109,7 +109,7 @@ name = "bytes" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -119,7 +119,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -128,7 +128,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -162,7 +162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -176,14 +176,14 @@ dependencies = [ [[package]] name = "console" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -197,7 +197,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -205,7 +205,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -232,7 +232,7 @@ dependencies = [ "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -270,7 +270,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -323,9 +323,9 @@ name = "failure_derive" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -335,8 +335,8 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -345,7 +345,7 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -401,7 +401,7 @@ name = "h2" version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -446,7 +446,7 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.20" +version = "0.12.21" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -493,7 +493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -505,7 +505,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -518,7 +518,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -553,7 +553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.46" +version = "0.2.47" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -562,7 +562,7 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -590,12 +590,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -628,7 +627,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -646,7 +645,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -660,7 +659,7 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -685,14 +684,14 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -702,19 +701,19 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "nix" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -728,7 +727,7 @@ name = "num_cpus" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -740,7 +739,7 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -755,7 +754,7 @@ version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -782,10 +781,10 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -795,7 +794,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -853,7 +852,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -866,10 +865,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -878,7 +877,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -891,7 +890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -901,8 +900,8 @@ name = "rand" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -918,7 +917,7 @@ name = "rand_chacha" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -958,7 +957,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -991,7 +990,7 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -999,7 +998,7 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1008,7 +1007,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1040,15 +1039,15 @@ dependencies = [ "encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1106,23 +1105,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "security-framework" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1136,7 +1135,7 @@ dependencies = [ "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1157,30 +1156,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.84" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.84" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1190,7 +1189,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1211,7 +1210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1247,18 +1246,18 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.24" +version = "0.15.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1267,9 +1266,9 @@ name = "synstructure" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1279,8 +1278,8 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1299,9 +1298,9 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1319,8 +1318,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1329,7 +1328,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1353,8 +1352,8 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1464,23 +1463,23 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "topgrade" -version = "1.4.0" +version = "1.5.0" dependencies = [ - "console 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1524,8 +1523,11 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "unicode-segmentation" @@ -1619,7 +1621,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1682,7 +1684,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1698,20 +1700,20 @@ dependencies = [ ] [metadata] -"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" +"checksum MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eaf9f0d0b1cc33a4d2aee14fb4b2eac03462ef4db29c8ac4057327d8a71ad86f" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" +"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" -"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60f0b0d4c0a382d2734228fd12b5a6b5dac185c60e938026fd31b265b94f9bd2" "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" @@ -1720,7 +1722,7 @@ dependencies = [ "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum console 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ecc3753530b959618f617b0cd6494526008d98687f1af5d8f9fa83fa9cdbb594" +"checksum console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2bf3720d3f3fc30b721ef1ae54e13af3264af4af39dc476a8de56a6ee1e2184b" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" @@ -1751,7 +1753,7 @@ dependencies = [ "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.20 (registry+https://github.com/rust-lang/crates.io-index)" = "80eeda66c9ef8e18f5122fff2c54604c053420b11dae951cfb74cf1dcba2e93f" +"checksum hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)" = "6d6b1a3d01ac8035b8d2d94e0e5254eab82746f09046baed763751b00253232b" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1762,12 +1764,12 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" +"checksum libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)" = "48450664a984b25d5b479554c29cc04e3150c97aa4c01da5604a2d4ed9151476" "checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" +"checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" @@ -1778,7 +1780,7 @@ dependencies = [ "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" -"checksum nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "921f61dc817b379d0834e45d5ec45beaacfae97082090a49c2cf30dcbc30206f" +"checksum nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46f0f3210768d796e8fa79ec70ee6af172dacbe7147f5e69be5240a47778302b" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" "checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" @@ -1795,9 +1797,9 @@ dependencies = [ "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" -"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" +"checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" +"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" "checksum rand 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dee497e66d8d76bf08ce20c8d36e16f93749ab0bf89975b4f8ae5cee660c2da2" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" "checksum rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3906503e80ac6cbcacb2c2973fa8e473f24d7e2747c8c92bb230c2441cad96b5" @@ -1810,7 +1812,7 @@ dependencies = [ "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" +"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" @@ -1823,25 +1825,25 @@ dependencies = [ "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" "checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" -"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" +"checksum security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfab8dda0e7a327c696d893df9ffa19cadc4bd195797997f5223cf5831beaf05" +"checksum security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d6696852716b589dff9e886ff83778bb635150168e83afa8ac6b8a78cb82abc" "checksum self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4997d828329f3bea234b5efd084f0ee07b284a556d64023cc0e3e47cc44d74" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" -"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" -"checksum serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "dfb1277d4d0563e4593e0b8b5d23d744d277b55d2bc0bf1c38d0d8a6589d38aa" +"checksum serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "534b8b91a95e0f71bca3ed5824752d558da048d4248c91af873b63bd60519752" +"checksum serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "a915306b0f1ac5607797697148c223bedeaa36bcc2e28a01441cd638cc6567b4" +"checksum serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" = "574378d957d6dcdf1bbb5d562a15cbd5e644159432f84634b94e485267abbcc7" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" +"checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" +"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" @@ -1866,7 +1868,7 @@ dependencies = [ "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -"checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" +"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" diff --git a/Cargo.toml b/Cargo.toml index 724bd6a9..dc2ad052 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.4.0" +version = "1.5.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" @@ -12,7 +12,7 @@ edition = "2018" directories = "1.0.2" failure = "0.1.5" failure_derive = "0.1.5" -serde = { version = "1.0.84", features = ["derive"] } +serde = { version = "1.0.85", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" @@ -20,12 +20,12 @@ structopt = "0.2.14" log = "0.4.6" env_logger = "0.6.0" walkdir = "2.2.7" -console = "0.7.3" +console = "0.7.5" self_update_crate = { version = "0.5.1", optional = true, package = "self_update" } lazy_static = "1.2.0" [target.'cfg(unix)'.dependencies] -nix = "0.12.0" +nix = "0.13.0" [profile.release] lto = true From 71558e6bdbaaa47eeb15dd8f19c0ae9a4b360b9d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 24 Jan 2019 13:35:38 +0200 Subject: [PATCH 091/140] Fix light themes --- src/terminal.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/terminal.rs b/src/terminal.rs index 9f2f3e06..ec78255a 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -36,7 +36,6 @@ impl Terminal { border = max(2, min(80, width as usize) - 3 - message.len()) )) .bold() - .white() )) .ok(); } From df27021277408684111d162cd019a5dd6a062dc9 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 27 Jan 2019 20:04:46 +0200 Subject: [PATCH 092/140] Use the correct paths for Emacs (fix #112) --- src/main.rs | 11 +++++++++++ src/steps/git.rs | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/main.rs b/src/main.rs index 4a1f8b0f..7992d586 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,6 +18,8 @@ use failure::{Fail, ResultExt}; use std::borrow::Cow; use std::env; use std::io; +#[cfg(windows)] +use std::path::PathBuf; use std::process::exit; use structopt::StructOpt; @@ -131,7 +133,16 @@ fn run() -> Result<(), Error> { report.push_result(execute(|| unix::run_nix(run_type), opt.no_retry)?); if !opt.disable.contains(&Step::Emacs) { + #[cfg(unix)] git_repos.insert(base_dirs.home_dir().join(".emacs.d")); + + #[cfg(windows)] + { + git_repos.insert(base_dirs.data_dir().join(".emacs.d")); + if let Ok(home) = env::var("HOME") { + git_repos.insert(PathBuf::from(home).join(".emacs.d")); + } + } } if !opt.disable.contains(&Step::Vim) { diff --git a/src/steps/git.rs b/src/steps/git.rs index badf113b..8c22be52 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -8,10 +8,12 @@ use std::io; use std::path::{Path, PathBuf}; use std::process::Command; +#[derive(Debug)] pub struct Git { git: Option, } +#[derive(Debug)] pub struct Repositories<'a> { git: &'a Git, repositories: HashSet, From 4f981fd504845af861e2c53c554394e21374ce68 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 27 Jan 2019 20:15:59 +0200 Subject: [PATCH 093/140] Only update Powershell modules if profile is present and allow disabling this step (fix #114) --- src/config.rs | 4 ++++ src/main.rs | 6 +++++- src/steps/os/windows.rs | 31 ++++++++++++++----------------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/config.rs b/src/config.rs index cc435342..3bc57324 100644 --- a/src/config.rs +++ b/src/config.rs @@ -39,6 +39,10 @@ pub enum Step { Emacs, /// Don't upgrade ruby gems Gem, + + #[cfg(windows)] + /// Don't update Powershell modules + Powershell, } impl Step { diff --git a/src/main.rs b/src/main.rs index 7992d586..e9e3c3ce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,7 +96,11 @@ fn run() -> Result<(), Error> { let powershell = windows::Powershell::new(); #[cfg(windows)] - report.push_result(execute(|| powershell.update_modules(run_type), opt.no_retry)?); + { + if powershell.profile().is_some() && !opt.disable.contains(&Step::Powershell) { + report.push_result(execute(|| powershell.update_modules(run_type), opt.no_retry)?); + } + } #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index fa5be586..dada49d7 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -2,7 +2,6 @@ use crate::error::Error; use crate::executor::{CommandExt, RunType}; use crate::terminal::{is_dumb, print_separator}; use crate::utils::{self, which}; -use log::error; use std::path::PathBuf; use std::process::Command; @@ -43,6 +42,7 @@ pub fn run_scoop(run_type: RunType) -> Option<(&'static str, bool)> { pub struct Powershell { path: Option, + profile: Option, } impl Powershell { @@ -51,9 +51,17 @@ impl Powershell { /// If the powershell binary is not found, or the current terminal is dumb /// then the instance of this struct will skip all the powershell steps. pub fn new() -> Self { - Powershell { - path: which("powershell").filter(|_| !is_dumb()), - } + let path = which("powershell").filter(|_| !is_dumb()); + + let profile = path.as_ref().and_then(|path| { + Command::new(path) + .args(&["-Command", "echo $profile"]) + .check_output() + .map(|output| PathBuf::from(output.trim())) + .ok() + }); + + Powershell { path, profile } } pub fn has_command(powershell: &PathBuf, command: &str) -> bool { @@ -66,19 +74,8 @@ impl Powershell { .is_ok() } - pub fn profile(&self) -> Option { - if let Some(powershell) = &self.path { - let result = Command::new(powershell) - .args(&["-Command", "echo $profile"]) - .check_output() - .map(|output| PathBuf::from(output.trim())); - - match result { - Err(e) => error!("Error getting Powershell profile: {}", e), - Ok(path) => return Some(path), - } - } - None + pub fn profile(&self) -> Option<&PathBuf> { + self.profile.as_ref() } #[must_use] From 8297b5929c725ac9682d4a3bea1149121be57a0c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 28 Jan 2019 08:09:15 +0200 Subject: [PATCH 094/140] Dependencies bump --- Cargo.lock | 268 +++++++++++++++++++++++++++++------------------------ Cargo.toml | 2 +- 2 files changed, 147 insertions(+), 123 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba2376a5..c1c215c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "MacTypes-sys" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -40,7 +40,7 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -58,7 +58,7 @@ dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -69,7 +69,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -77,16 +77,16 @@ name = "base64" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "base64" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -101,7 +101,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -109,7 +109,7 @@ name = "bytes" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -119,7 +119,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -128,7 +128,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -162,7 +162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -183,7 +183,7 @@ dependencies = [ "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -197,7 +197,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -205,7 +205,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -224,6 +224,21 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-channel" version = "0.3.6" @@ -270,7 +285,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -335,7 +350,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -345,9 +360,9 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -368,6 +383,11 @@ name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "fuchsia-cprng" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -398,14 +418,14 @@ dependencies = [ [[package]] name = "h2" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -423,7 +443,7 @@ dependencies = [ [[package]] name = "http" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -446,27 +466,27 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.21" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -493,7 +513,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -518,7 +538,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -553,7 +573,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.47" +version = "0.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -562,7 +582,7 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -594,7 +614,7 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -627,12 +647,12 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz_oxide" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -640,13 +660,13 @@ dependencies = [ [[package]] name = "miniz_oxide_c_api" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -659,7 +679,7 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -684,7 +704,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -701,7 +721,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -713,7 +733,7 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -727,7 +747,7 @@ name = "num_cpus" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -739,7 +759,7 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -754,7 +774,7 @@ version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -781,7 +801,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -794,7 +814,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -873,25 +893,25 @@ dependencies = [ [[package]] name = "rand" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -901,9 +921,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -918,20 +938,20 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -939,7 +959,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -947,7 +967,7 @@ name = "rand_isaac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -957,8 +977,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -968,7 +988,7 @@ name = "rand_pcg" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -977,7 +997,7 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -985,7 +1005,7 @@ name = "rdrand" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1008,14 +1028,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1031,15 +1051,15 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1047,13 +1067,13 @@ dependencies = [ "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1086,7 +1106,7 @@ name = "same-file" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1110,7 +1130,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1121,7 +1141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1133,9 +1153,9 @@ dependencies = [ "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1174,7 +1194,7 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1278,7 +1298,7 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1288,7 +1308,7 @@ name = "tempdir" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1298,7 +1318,7 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1318,7 +1338,7 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1328,7 +1348,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1352,14 +1372,14 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1370,8 +1390,8 @@ dependencies = [ "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1434,9 +1454,10 @@ dependencies = [ [[package]] name = "tokio-threadpool" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1444,12 +1465,13 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-timer" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1468,7 +1490,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.5.0" +version = "1.6.0" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1572,7 +1594,7 @@ name = "uuid" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1602,7 +1624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1621,7 +1643,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1650,7 +1672,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1667,7 +1689,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1684,7 +1706,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1709,11 +1731,11 @@ dependencies = [ "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" -"checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2" +"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" -"checksum byteorder 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60f0b0d4c0a382d2734228fd12b5a6b5dac185c60e938026fd31b265b94f9bd2" +"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" @@ -1727,6 +1749,7 @@ dependencies = [ "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" +"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" "checksum crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "137bc235f622ffaa0428e3854e24acb53291fc0b3ff6fb2cb75a8be6fb02f06b" "checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" "checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" @@ -1744,16 +1767,17 @@ dependencies = [ "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +"checksum fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81f7f8eb465745ea9b02e2704612a9946a59fa40572086c6fd49d6ddcf30bf31" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum h2 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "30e0b8e55b4d7ffedade2b9605851f8e85f5010663e7ad170ef3c0f0681bc43f" +"checksum h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddb2b25a33e231484694267af28fec74ac63b5ccf51ee2065a5e313b834d836e" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" +"checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.21 (registry+https://github.com/rust-lang/crates.io-index)" = "6d6b1a3d01ac8035b8d2d94e0e5254eab82746f09046baed763751b00253232b" +"checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1764,7 +1788,7 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)" = "48450664a984b25d5b479554c29cc04e3150c97aa4c01da5604a2d4ed9151476" +"checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" "checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" @@ -1774,8 +1798,8 @@ dependencies = [ "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" "checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649" -"checksum miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ad30a47319c16cde58d0314f5d98202a80c9083b5f61178457403dfb14e509c" -"checksum miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28edaef377517fd9fe3e085c37d892ce7acd1fbeab9239c5a36eec352d8a8b7e" +"checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" +"checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" @@ -1800,12 +1824,12 @@ dependencies = [ "checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" -"checksum rand 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dee497e66d8d76bf08ce20c8d36e16f93749ab0bf89975b4f8ae5cee660c2da2" -"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" +"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" "checksum rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3906503e80ac6cbcacb2c2973fa8e473f24d7e2747c8c92bb230c2441cad96b5" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" -"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f46fbd5550acf75b0c2730f5dd1873751daf9beb8f11b44027778fae50d7feca" @@ -1815,9 +1839,9 @@ dependencies = [ "checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" -"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" +"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum reqwest 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0e60f169af3915c294818d55dde549f00d2966cef36d6c5e7255d75df3f2b16f" +"checksum reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)" = "09d6e187a58d923ee132fcda141c94e716bcfe301c2ea2bef5c81536e0085376" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" @@ -1832,7 +1856,7 @@ dependencies = [ "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "534b8b91a95e0f71bca3ed5824752d558da048d4248c91af873b63bd60519752" "checksum serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "a915306b0f1ac5607797697148c223bedeaa36bcc2e28a01441cd638cc6567b4" -"checksum serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" = "574378d957d6dcdf1bbb5d562a15cbd5e644159432f84634b94e485267abbcc7" +"checksum serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "4b90a9fbe1211e57d3e1c15670f1cb00802988fb23a1a4aad7a2b63544f1920e" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" @@ -1854,14 +1878,14 @@ dependencies = [ "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4790d0be6f4ba6ae4f48190efa2ed7780c9e3567796abdb285003cf39840d9c5" +"checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c" "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" "checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" "checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" "checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" -"checksum tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "17465013014410310f9f61fa10bf4724803c149ea1d51efece131c38efca93aa" -"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" +"checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb" +"checksum tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "21c04a314a1f69f73c0227beba6250e06cdc1e9a62e7eff912bf54a59b6d1b94" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" @@ -1887,7 +1911,7 @@ dependencies = [ "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" +"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/Cargo.toml b/Cargo.toml index dc2ad052..336c456a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.5.0" +version = "1.6.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From ae75f0de9e22fe88d9541e858fa5e926beae8322 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 30 Jan 2019 09:48:26 +0200 Subject: [PATCH 095/140] No need to update submodules (fix #115) Git pull should do that. In addition, it breaks the colors in Windows --- src/steps/git.rs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/steps/git.rs b/src/steps/git.rs index 8c22be52..ab9090c7 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -69,12 +69,6 @@ impl Git { .current_dir(&path) .check_run()?; - run_type - .execute(git) - .args(&["submodule", "update", "--init", "--recursive"]) - .current_dir(&path) - .check_run()?; - Ok(()) }() .is_ok(); From 38552646f460e9a01925d57528621e40fd8e3b9b Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 30 Jan 2019 10:41:40 +0200 Subject: [PATCH 096/140] Fix potential integer overflow --- src/terminal.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/terminal.rs b/src/terminal.rs index ec78255a..1e9dca34 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -33,7 +33,13 @@ impl Terminal { "\n―― {} {:―^border$}", message, "", - border = max(2, min(80, width as usize) - 3 - message.len()) + border = max( + 2, + min(80, width as usize) + .checked_sub(3) + .and_then(|e| e.checked_sub(message.len())) + .unwrap_or(0) + ) )) .bold() )) From 022115e2372dd0445781f15f1d4422765afab62c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 30 Jan 2019 16:00:10 +0200 Subject: [PATCH 097/140] Normalize paths in Windows (fix #113) (#116) While `//?/C:/Users/Someone/config-files` is a valid path, it's not very human friendly. Such paths are returned from `BaseDirs`. This patch formats them in the traditional way. --- appveyor.yml | 3 +- ci/script.sh | 1 + src/steps/git.rs | 6 ++-- src/utils.rs | 87 ++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 91 insertions(+), 6 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index bd610e04..f6e7e8a7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -27,7 +27,8 @@ test_script: - if [%APPVEYOR_REPO_TAG%]==[false] ( cargo fmt --all -- --check && cargo clippy --all-targets --all-features -- -D warnings && - cargo clippy --all-targets -- -D warnings + cargo clippy --all-targets -- -D warnings && + cargo test ) before_deploy: diff --git a/ci/script.sh b/ci/script.sh index c3062300..d25e366f 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -9,6 +9,7 @@ main() { cross clippy --all-targets --all-features -- -D warnings if [ ! -z $DISABLE_TESTS ]; then + cross test return fi diff --git a/src/steps/git.rs b/src/steps/git.rs index ab9090c7..4cc5e3c8 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::which; +use crate::utils::{which, HumanizedPath}; use log::{debug, error}; use std::collections::HashSet; use std::io; @@ -58,7 +58,7 @@ impl Git { pub fn pull>(&self, path: P, run_type: RunType) -> Option<(String, bool)> { let path = path.as_ref(); - print_separator(format!("Pulling {}", path.display())); + print_separator(format!("Pulling {}", HumanizedPath::from(path))); let git = self.git.as_ref().unwrap(); @@ -73,7 +73,7 @@ impl Git { }() .is_ok(); - Some((format!("git: {}", path.display()), success)) + Some((format!("git: {}", HumanizedPath::from(path)), success)) } } diff --git a/src/utils.rs b/src/utils.rs index 805bc4d9..83b77a59 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,8 +1,8 @@ use super::error::{Error, ErrorKind}; use log::{debug, error}; use std::ffi::OsStr; -use std::fmt::Debug; -use std::path::{Path, PathBuf}; +use std::fmt::{self, Debug}; +use std::path::{Component, Path, PathBuf}; use std::process::{ExitStatus, Output}; use which_crate; @@ -68,3 +68,86 @@ pub fn which + Debug>(binary_name: T) -> Option { } } } + +/// `std::fmt::Display` implementation for `std::path::Path`. +/// +/// This struct differs from `std::path::Display` in that in Windows it takes care of printing backslashes +/// instead of slashes and don't print the `\\?` prefix in long paths. +pub struct HumanizedPath<'a> { + path: &'a Path, +} + +impl<'a> From<&'a Path> for HumanizedPath<'a> { + fn from(path: &'a Path) -> Self { + Self { path } + } +} + +impl<'a> fmt::Display for HumanizedPath<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + if cfg!(windows) { + let mut iterator = self.path.components().peekable(); + + while let Some(component) = iterator.next() { + let mut print_seperator = iterator.peek().is_some(); + + match &component { + Component::Normal(c) if *c == "?" => { + print_seperator = false; + } + Component::RootDir | Component::CurDir => { + print_seperator = false; + } + Component::ParentDir => { + write!(f, "..")?; + } + Component::Prefix(p) => { + write!(f, "{}", p.as_os_str().to_string_lossy())?; + print_seperator = true; + } + Component::Normal(c) => { + write!(f, "{}", c.to_string_lossy())?; + } + }; + + if print_seperator { + write!(f, "{}", std::path::MAIN_SEPARATOR)?; + } + } + } else { + write!(f, "{}", self.path.display())?; + } + + Ok(()) + } +} + +#[cfg(test)] +#[cfg(windows)] +mod tests { + use super::*; + + fn humanize>(path: P) -> String { + format!("{}", HumanizedPath::from(path.as_ref())) + } + + #[test] + fn test_just_drive() { + assert_eq!("C:\\", humanize("C:\\")); + } + + #[test] + fn test_path() { + assert_eq!("C:\\hi", humanize("C:\\hi")); + } + + #[test] + fn test_unc() { + assert_eq!("\\\\server\\share\\", humanize("\\\\server\\share")); + } + + #[test] + fn test_long_path() { + assert_eq!("C:\\hi", humanize("//?/C:/hi")); + } +} From b780642a672b81f3db4fc3d21a3486c51b285e70 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 30 Jan 2019 19:20:47 +0200 Subject: [PATCH 098/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1c215c9..ef46f1db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1490,7 +1490,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.6.0" +version = "1.6.1" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 336c456a..2c00bdaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.6.0" +version = "1.6.1" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From a6df57a781569a43d5292f1ddc9230e10570c55c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 3 Feb 2019 10:12:54 +0200 Subject: [PATCH 099/140] Run homebrew cask upgrade if available (fix #117) --- src/steps/os/unix.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 32f51836..64905084 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,8 +1,10 @@ use crate::error::Error; -use crate::executor::RunType; +use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::which; use directories::BaseDirs; +use std::path::Path; +use std::process::Command; pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { @@ -55,7 +57,18 @@ pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Option<(&'static str, b let inner = || -> Result<(), Error> { run_type.execute(&brew).arg("update").check_run()?; run_type.execute(&brew).arg("upgrade").check_run()?; - run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; + + let cask_upgrade_exists = Command::new(&brew) + .args(&["--repository", "buo/cask-upgrade"]) + .check_output() + .map(|p| Path::new(p.trim()).exists())?; + + if cask_upgrade_exists { + run_type.execute(&brew).args(&["cu", "-a"]).check_run()?; + } else { + run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; + } + if cleanup { run_type.execute(&brew).arg("cleanup").check_run()?; } From e466e2cda29210064e668008ba45c880a6886068 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 9 Feb 2019 21:27:42 +0200 Subject: [PATCH 100/140] Add bors.toml --- bors.toml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 bors.toml diff --git a/bors.toml b/bors.toml new file mode 100644 index 00000000..4e6e85f4 --- /dev/null +++ b/bors.toml @@ -0,0 +1,4 @@ +status = [ + "continuous-integration/travis-ci/push", + "continuous-integration/appveyor/branch" +] From 07a525da9c0e0306b68cdc8eb1badecf3084e7dd Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 22 Jan 2019 22:37:32 +0200 Subject: [PATCH 101/140] Allow disabling steps from the configuration file --- README.md | 3 ++ src/config.rs | 111 +++++++++++++++++++++++++++++++++++++--------- src/main.rs | 120 ++++++++++++++++++++++++++++---------------------- 3 files changed, 160 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index b34922e3..0f639aef 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,9 @@ git_repos = [ "~/dev/topgrade", ] +# Same options as the command line flag +disable = ["system", "emacs"] + [pre_commands] "Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak" diff --git a/src/config.rs b/src/config.rs index 3bc57324..7a393f99 100644 --- a/src/config.rs +++ b/src/config.rs @@ -27,7 +27,8 @@ lazy_static! { }; } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Deserialize)] +#[serde(rename_all = "lowercase")] pub enum Step { /// Don't perform system upgrade System, @@ -59,14 +60,19 @@ impl std::str::FromStr for Step { } #[derive(Deserialize, Default)] -pub struct Config { +/// Configuration file +pub struct ConfigFile { pre_commands: Option, commands: Option, git_repos: Option>, + disable: Option>, } -impl Config { - pub fn read(base_dirs: &BaseDirs) -> Result { +impl ConfigFile { + /// Read the configuration file. + /// + /// If the configuration file does not exist the function returns the default ConfigFile. + fn read(base_dirs: &BaseDirs) -> Result { let config_path = base_dirs.config_dir().join("topgrade.toml"); if !config_path.exists() { return Ok(Default::default()); @@ -83,40 +89,101 @@ impl Config { Ok(result) } - - pub fn pre_commands(&self) -> &Option { - &self.pre_commands - } - - pub fn commands(&self) -> &Option { - &self.commands - } - - pub fn git_repos(&self) -> &Option> { - &self.git_repos - } } #[derive(StructOpt, Debug)] #[structopt(name = "Topgrade")] -pub struct Opt { +/// Command line arguments +pub struct CommandLineArgs { /// Run inside tmux #[structopt(short = "t", long = "tmux")] - pub run_in_tmux: bool, + run_in_tmux: bool, /// Cleanup temporary or old files #[structopt(short = "c", long = "cleanup")] - pub cleanup: bool, + cleanup: bool, /// Print what would be done #[structopt(short = "n", long = "dry-run")] - pub dry_run: bool, + dry_run: bool, /// Do not ask to retry failed steps #[structopt(long = "no-retry")] - pub no_retry: bool, + no_retry: bool, /// Do not perform upgrades for the given steps #[structopt(long = "disable", raw(possible_values = "&Step::possible_values()"))] - pub disable: Vec, + disable: Vec, +} + +/// Represents the application configuration +/// +/// The struct holds the loaded configuration file, as well as the arguments parsed from the command line. +/// Its provided methods decide the appropriate options based on combining the configuraiton file and the +/// command line arguments. +pub struct Config { + opt: CommandLineArgs, + config_file: ConfigFile, +} + +impl Config { + /// Load the configuration. + /// + /// The function parses the command line arguments and reading the configuration file. + pub fn load(base_dirs: &BaseDirs) -> Result { + Ok(Self { + opt: CommandLineArgs::from_args(), + config_file: ConfigFile::read(base_dirs)?, + }) + } + + /// The list of commands to run before performing any step. + pub fn pre_commands(&self) -> &Option { + &self.config_file.pre_commands + } + + /// The list of custom steps. + pub fn commands(&self) -> &Option { + &self.config_file.commands + } + + /// The list of additional git repositories to pull. + pub fn git_repos(&self) -> &Option> { + &self.config_file.git_repos + } + + /// Tell whether the specified step should run. + /// + /// If the step appears either in the `--disable` command line argument + /// or the `disable` option in the configuration, the function returns false. + pub fn should_run(&self, step: Step) -> bool { + !(self + .config_file + .disable + .as_ref() + .map(|d| d.contains(&step)) + .unwrap_or(false) + || self.opt.disable.contains(&step)) + } + + /// Tell whether we should run in tmux. + pub fn run_in_tmux(&self) -> bool { + self.opt.run_in_tmux + } + + /// Tell whether we should perform cleanup steps. + #[cfg(not(windows))] + pub fn cleanup(&self) -> bool { + self.opt.cleanup + } + + /// Tell whether we are dry-running. + pub fn dry_run(&self) -> bool { + self.opt.dry_run + } + + /// Tell whether we should not attempt to retry anything. + pub fn no_retry(&self) -> bool { + self.opt.no_retry + } } diff --git a/src/main.rs b/src/main.rs index e9e3c3ce..11b16fcb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,7 +21,6 @@ use std::io; #[cfg(windows)] use std::path::PathBuf; use std::process::exit; -use structopt::StructOpt; fn execute<'a, F, M>(func: F, no_retry: bool) -> Result, Error> where @@ -52,9 +51,10 @@ where fn run() -> Result<(), Error> { ctrlc::set_handler(); - let opt = config::Opt::from_args(); + let base_dirs = directories::BaseDirs::new().ok_or(ErrorKind::NoBaseDirectories)?; + let config = Config::load(&base_dirs)?; - if opt.run_in_tmux && env::var("TMUX").is_err() { + if config.run_in_tmux() && env::var("TMUX").is_err() { #[cfg(unix)] { tmux::run_in_tmux(); @@ -63,16 +63,14 @@ fn run() -> Result<(), Error> { env_logger::init(); - let base_dirs = directories::BaseDirs::new().ok_or(ErrorKind::NoBaseDirectories)?; let git = git::Git::new(); let mut git_repos = git::Repositories::new(&git); - let config = Config::read(&base_dirs)?; let mut report = Report::new(); #[cfg(any(target_os = "freebsd", target_os = "linux"))] let sudo = utils::which("sudo"); - let run_type = executor::RunType::new(opt.dry_run); + let run_type = executor::RunType::new(config.dry_run()); #[cfg(feature = "self-update")] { @@ -97,8 +95,8 @@ fn run() -> Result<(), Error> { #[cfg(windows)] { - if powershell.profile().is_some() && !opt.disable.contains(&Step::Powershell) { - report.push_result(execute(|| powershell.update_modules(run_type), opt.no_retry)?); + if powershell.profile().is_some() && config.should_run(Step::Powershell) { + report.push_result(execute(|| powershell.update_modules(run_type), config.no_retry())?); } } @@ -107,36 +105,42 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - if !opt.disable.contains(&Step::System) { + if config.should_run(Step::System) { match &distribution { Ok(distribution) => { report.push_result(execute( - || distribution.upgrade(&sudo, opt.cleanup, run_type), - opt.no_retry, + || distribution.upgrade(&sudo, config.cleanup(), run_type), + config.no_retry(), )?); } Err(e) => { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute(|| linux::run_etc_update(&sudo, run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_etc_update(&sudo, run_type), config.no_retry())?); } } #[cfg(windows)] - report.push_result(execute(|| windows::run_chocolatey(run_type), opt.no_retry)?); + report.push_result(execute(|| windows::run_chocolatey(run_type), config.no_retry())?); #[cfg(windows)] - report.push_result(execute(|| windows::run_scoop(run_type), opt.no_retry)?); + report.push_result(execute(|| windows::run_scoop(run_type), config.no_retry())?); #[cfg(unix)] - report.push_result(execute(|| unix::run_homebrew(opt.cleanup, run_type), opt.no_retry)?); + report.push_result(execute( + || unix::run_homebrew(config.cleanup(), run_type), + config.no_retry(), + )?); #[cfg(target_os = "freebsd")] - report.push_result(execute(|| freebsd::upgrade_packages(&sudo, run_type), opt.no_retry)?); + report.push_result(execute( + || freebsd::upgrade_packages(&sudo, run_type), + config.no_retry(), + )?); #[cfg(unix)] - report.push_result(execute(|| unix::run_nix(run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_nix(run_type), config.no_retry())?); - if !opt.disable.contains(&Step::Emacs) { + if config.should_run(Step::Emacs) { #[cfg(unix)] git_repos.insert(base_dirs.home_dir().join(".emacs.d")); @@ -149,7 +153,7 @@ fn run() -> Result<(), Error> { } } - if !opt.disable.contains(&Step::Vim) { + if config.should_run(Step::Vim) { git_repos.insert(base_dirs.home_dir().join(".vim")); git_repos.insert(base_dirs.home_dir().join(".config/nvim")); } @@ -170,7 +174,7 @@ fn run() -> Result<(), Error> { } } - if !opt.disable.contains(&Step::GitRepos) { + if config.should_run(Step::GitRepos) { if let Some(custom_git_repos) = config.git_repos() { for git_repo in custom_git_repos { git_repos.insert(git_repo); @@ -178,39 +182,48 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute(|| git.pull(&repo, run_type), opt.no_retry)?); + report.push_result(execute(|| git.pull(&repo, run_type), config.no_retry())?); } #[cfg(unix)] { - report.push_result(execute(|| unix::run_zplug(&base_dirs, run_type), opt.no_retry)?); - report.push_result(execute(|| unix::run_fisher(&base_dirs, run_type), opt.no_retry)?); - report.push_result(execute(|| tmux::run_tpm(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute(|| unix::run_zplug(&base_dirs, run_type), config.no_retry())?); + report.push_result(execute(|| unix::run_fisher(&base_dirs, run_type), config.no_retry())?); + report.push_result(execute(|| tmux::run_tpm(&base_dirs, run_type), config.no_retry())?); } - report.push_result(execute(|| generic::run_rustup(&base_dirs, run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_cargo_update(run_type), opt.no_retry)?); + report.push_result(execute( + || generic::run_rustup(&base_dirs, run_type), + config.no_retry(), + )?); + report.push_result(execute(|| generic::run_cargo_update(run_type), config.no_retry())?); - if !opt.disable.contains(&Step::Emacs) { - report.push_result(execute(|| generic::run_emacs(&base_dirs, run_type), opt.no_retry)?); + if config.should_run(Step::Emacs) { + report.push_result(execute(|| generic::run_emacs(&base_dirs, run_type), config.no_retry())?); } - report.push_result(execute(|| generic::run_opam_update(run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_vcpkg_update(run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_pipx_update(run_type), opt.no_retry)?); - report.push_result(execute(|| generic::run_jetpack(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_opam_update(run_type), config.no_retry())?); + report.push_result(execute(|| generic::run_vcpkg_update(run_type), config.no_retry())?); + report.push_result(execute(|| generic::run_pipx_update(run_type), config.no_retry())?); + report.push_result(execute(|| generic::run_jetpack(run_type), config.no_retry())?); - if !opt.disable.contains(&Step::Vim) { - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, run_type), opt.no_retry)?); - report.push_result(execute(|| vim::upgrade_neovim(&base_dirs, run_type), opt.no_retry)?); + if config.should_run(Step::Vim) { + report.push_result(execute(|| vim::upgrade_vim(&base_dirs, run_type), config.no_retry())?); + report.push_result(execute( + || vim::upgrade_neovim(&base_dirs, run_type), + config.no_retry(), + )?); } - report.push_result(execute(|| node::run_npm_upgrade(&base_dirs, run_type), opt.no_retry)?); + report.push_result(execute( + || node::run_npm_upgrade(&base_dirs, run_type), + config.no_retry(), + )?); report.push_result(execute( || generic::run_composer_update(&base_dirs, run_type), - opt.no_retry, + config.no_retry(), )?); - report.push_result(execute(|| node::yarn_global_update(run_type), opt.no_retry)?); + report.push_result(execute(|| node::yarn_global_update(run_type), config.no_retry())?); #[cfg(not(any( target_os = "freebsd", @@ -218,51 +231,54 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute(|| generic::run_apm(run_type), opt.no_retry)?); + report.push_result(execute(|| generic::run_apm(run_type), config.no_retry())?); - if !opt.disable.contains(&Step::Gem) { - report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), opt.no_retry)?); + if config.should_run(Step::Gem) { + report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), config.no_retry())?); } #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_update(run_type), opt.no_retry)?); - report.push_result(execute(|| linux::run_snap(&sudo, run_type), opt.no_retry)?); + report.push_result(execute(|| linux::flatpak_update(run_type), config.no_retry())?); + report.push_result(execute(|| linux::run_snap(&sudo, run_type), config.no_retry())?); } if let Some(commands) = config.commands() { for (name, command) in commands { report.push_result(execute( || Some((name, generic::run_custom_command(&name, &command, run_type).is_ok())), - opt.no_retry, + config.no_retry(), )?); } } #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::run_fwupdmgr(run_type), opt.no_retry)?); - report.push_result(execute(|| linux::run_needrestart(&sudo, run_type), opt.no_retry)?); + report.push_result(execute(|| linux::run_fwupdmgr(run_type), config.no_retry())?); + report.push_result(execute(|| linux::run_needrestart(&sudo, run_type), config.no_retry())?); } #[cfg(target_os = "macos")] { - if !opt.disable.contains(&Step::System) { - report.push_result(execute(|| macos::upgrade_macos(run_type), opt.no_retry)?); + if config.should_run(Step::System) { + report.push_result(execute(|| macos::upgrade_macos(run_type), config.no_retry())?); } } #[cfg(target_os = "freebsd")] { - if !opt.disable.contains(&Step::System) { - report.push_result(execute(|| freebsd::upgrade_freebsd(&sudo, run_type), opt.no_retry)?); + if config.should_run(Step::System) { + report.push_result(execute( + || freebsd::upgrade_freebsd(&sudo, run_type), + config.no_retry(), + )?); } } #[cfg(windows)] { - if !opt.disable.contains(&Step::System) { - report.push_result(execute(|| powershell.windows_update(run_type), opt.no_retry)?); + if config.should_run(Step::System) { + report.push_result(execute(|| powershell.windows_update(run_type), config.no_retry())?); } } From a8379fdda2438ec095b8901edc9a3c3f67bbd238 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 13 Jan 2019 23:20:32 +0200 Subject: [PATCH 102/140] Step refactoring --- src/error.rs | 3 + src/main.rs | 176 ++++++++++++++++++++++++------- src/steps/generic.rs | 245 +++++++++++++------------------------------ src/utils.rs | 29 +++++ 4 files changed, 243 insertions(+), 210 deletions(-) diff --git a/src/error.rs b/src/error.rs index d97d0b02..acc75255 100644 --- a/src/error.rs +++ b/src/error.rs @@ -41,6 +41,9 @@ pub enum ErrorKind { #[fail(display = "Self-update failure")] #[cfg(feature = "self-update")] SelfUpdate, + + #[fail(display = "A step should be skipped")] + SkipStep, } impl Fail for Error { diff --git a/src/main.rs b/src/main.rs index 11b16fcb..998c4fbd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,14 +15,16 @@ use self::report::Report; use self::steps::*; use self::terminal::*; use failure::{Fail, ResultExt}; +use log::debug; use std::borrow::Cow; use std::env; +use std::fmt::Debug; use std::io; #[cfg(windows)] use std::path::PathBuf; use std::process::exit; -fn execute<'a, F, M>(func: F, no_retry: bool) -> Result, Error> +fn execute_legacy<'a, F, M>(func: F, no_retry: bool) -> Result, Error> where M: Into>, F: Fn() -> Option<(M, bool)>, @@ -48,6 +50,42 @@ where Ok(None) } +fn execute<'a, F, M>(report: &mut Report<'a>, key: M, func: F, no_retry: bool) -> Result<(), Error> +where + F: Fn() -> Result<(), Error>, + M: Into> + Debug, +{ + debug!("Executing {:?}", key); + + loop { + match func() { + Ok(()) => { + report.push_result(Some((key, true))); + break; + } + Err(ref e) if e.kind() == ErrorKind::SkipStep => { + break; + } + Err(_) => { + let interrupted = ctrlc::interrupted(); + if interrupted { + ctrlc::unset_interrupted(); + } + + let should_ask = interrupted || !no_retry; + let should_retry = should_ask && should_retry(interrupted).context(ErrorKind::Retry)?; + + if !should_retry { + report.push_result(Some((key, false))); + break; + } + } + } + } + + Ok(()) +} + fn run() -> Result<(), Error> { ctrlc::set_handler(); @@ -96,7 +134,10 @@ fn run() -> Result<(), Error> { #[cfg(windows)] { if powershell.profile().is_some() && config.should_run(Step::Powershell) { - report.push_result(execute(|| powershell.update_modules(run_type), config.no_retry())?); + report.push_result(execute_legacy( + || powershell.update_modules(run_type), + config.no_retry(), + )?); } } @@ -108,7 +149,7 @@ fn run() -> Result<(), Error> { if config.should_run(Step::System) { match &distribution { Ok(distribution) => { - report.push_result(execute( + report.push_result(execute_legacy( || distribution.upgrade(&sudo, config.cleanup(), run_type), config.no_retry(), )?); @@ -117,28 +158,31 @@ fn run() -> Result<(), Error> { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute(|| linux::run_etc_update(&sudo, run_type), config.no_retry())?); + report.push_result(execute_legacy( + || linux::run_etc_update(&sudo, run_type), + config.no_retry(), + )?); } } #[cfg(windows)] - report.push_result(execute(|| windows::run_chocolatey(run_type), config.no_retry())?); + report.push_result(execute_legacy(|| windows::run_chocolatey(run_type), config.no_retry())?); #[cfg(windows)] - report.push_result(execute(|| windows::run_scoop(run_type), config.no_retry())?); + report.push_result(execute_legacy(|| windows::run_scoop(run_type), config.no_retry())?); #[cfg(unix)] - report.push_result(execute( + report.push_result(execute_legacy( || unix::run_homebrew(config.cleanup(), run_type), config.no_retry(), )?); #[cfg(target_os = "freebsd")] - report.push_result(execute( + report.push_result(execute_legacy( || freebsd::upgrade_packages(&sudo, run_type), config.no_retry(), )?); #[cfg(unix)] - report.push_result(execute(|| unix::run_nix(run_type), config.no_retry())?); + report.push_result(execute_legacy(|| unix::run_nix(run_type), config.no_retry())?); if config.should_run(Step::Emacs) { #[cfg(unix)] @@ -182,48 +226,97 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute(|| git.pull(&repo, run_type), config.no_retry())?); + report.push_result(execute_legacy(|| git.pull(&repo, run_type), config.no_retry())?); } #[cfg(unix)] { - report.push_result(execute(|| unix::run_zplug(&base_dirs, run_type), config.no_retry())?); - report.push_result(execute(|| unix::run_fisher(&base_dirs, run_type), config.no_retry())?); - report.push_result(execute(|| tmux::run_tpm(&base_dirs, run_type), config.no_retry())?); + report.push_result(execute_legacy( + || unix::run_zplug(&base_dirs, run_type), + config.no_retry(), + )?); + report.push_result(execute_legacy( + || unix::run_fisher(&base_dirs, run_type), + config.no_retry(), + )?); + report.push_result(execute_legacy( + || tmux::run_tpm(&base_dirs, run_type), + config.no_retry(), + )?); } - report.push_result(execute( + execute( + &mut report, + "rustup", || generic::run_rustup(&base_dirs, run_type), config.no_retry(), - )?); - report.push_result(execute(|| generic::run_cargo_update(run_type), config.no_retry())?); + )?; + execute( + &mut report, + "cargo", + || generic::run_cargo_update(run_type), + config.no_retry(), + )?; if config.should_run(Step::Emacs) { - report.push_result(execute(|| generic::run_emacs(&base_dirs, run_type), config.no_retry())?); + execute( + &mut report, + "Emacs", + || generic::run_emacs(&base_dirs, run_type), + config.no_retry(), + )?; } - report.push_result(execute(|| generic::run_opam_update(run_type), config.no_retry())?); - report.push_result(execute(|| generic::run_vcpkg_update(run_type), config.no_retry())?); - report.push_result(execute(|| generic::run_pipx_update(run_type), config.no_retry())?); - report.push_result(execute(|| generic::run_jetpack(run_type), config.no_retry())?); + execute( + &mut report, + "opam", + || generic::run_opam_update(run_type), + config.no_retry(), + )?; + execute( + &mut report, + "vcpkg", + || generic::run_vcpkg_update(run_type), + config.no_retry(), + )?; + execute( + &mut report, + "pipx", + || generic::run_pipx_update(run_type), + config.no_retry(), + )?; + execute( + &mut report, + "jetpak", + || generic::run_jetpack(run_type), + config.no_retry(), + )?; if config.should_run(Step::Vim) { - report.push_result(execute(|| vim::upgrade_vim(&base_dirs, run_type), config.no_retry())?); - report.push_result(execute( + report.push_result(execute_legacy( + || vim::upgrade_vim(&base_dirs, run_type), + config.no_retry(), + )?); + report.push_result(execute_legacy( || vim::upgrade_neovim(&base_dirs, run_type), config.no_retry(), )?); } - report.push_result(execute( + report.push_result(execute_legacy( || node::run_npm_upgrade(&base_dirs, run_type), config.no_retry(), )?); - report.push_result(execute( + execute( + &mut report, + "composer", || generic::run_composer_update(&base_dirs, run_type), config.no_retry(), + )?; + report.push_result(execute_legacy( + || node::yarn_global_update(run_type), + config.no_retry(), )?); - report.push_result(execute(|| node::yarn_global_update(run_type), config.no_retry())?); #[cfg(not(any( target_os = "freebsd", @@ -231,21 +324,26 @@ fn run() -> Result<(), Error> { target_os = "netbsd", target_os = "dragonfly" )))] - report.push_result(execute(|| generic::run_apm(run_type), config.no_retry())?); + execute(&mut report, "apm", || generic::run_apm(run_type), config.no_retry())?; if config.should_run(Step::Gem) { - report.push_result(execute(|| generic::run_gem(&base_dirs, run_type), config.no_retry())?); + execute( + &mut report, + "gem", + || generic::run_gem(&base_dirs, run_type), + config.no_retry(), + )?; } #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::flatpak_update(run_type), config.no_retry())?); - report.push_result(execute(|| linux::run_snap(&sudo, run_type), config.no_retry())?); + report.push_result(execute_legacy(|| linux::flatpak_update(run_type), config.no_retry())?); + report.push_result(execute_legacy(|| linux::run_snap(&sudo, run_type), config.no_retry())?); } if let Some(commands) = config.commands() { for (name, command) in commands { - report.push_result(execute( + report.push_result(execute_legacy( || Some((name, generic::run_custom_command(&name, &command, run_type).is_ok())), config.no_retry(), )?); @@ -254,21 +352,24 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute(|| linux::run_fwupdmgr(run_type), config.no_retry())?); - report.push_result(execute(|| linux::run_needrestart(&sudo, run_type), config.no_retry())?); + report.push_result(execute_legacy(|| linux::run_fwupdmgr(run_type), config.no_retry())?); + report.push_result(execute_legacy( + || linux::run_needrestart(&sudo, run_type), + config.no_retry(), + )?); } #[cfg(target_os = "macos")] { if config.should_run(Step::System) { - report.push_result(execute(|| macos::upgrade_macos(run_type), config.no_retry())?); + report.push_result(execute_legacy(|| macos::upgrade_macos(run_type), config.no_retry())?); } } #[cfg(target_os = "freebsd")] { if config.should_run(Step::System) { - report.push_result(execute( + report.push_result(execute_legacy( || freebsd::upgrade_freebsd(&sudo, run_type), config.no_retry(), )?); @@ -278,7 +379,10 @@ fn run() -> Result<(), Error> { #[cfg(windows)] { if config.should_run(Step::System) { - report.push_result(execute(|| powershell.windows_update(run_type), config.no_retry())?); + report.push_result(execute_legacy( + || powershell.windows_update(run_type), + config.no_retry(), + )?); } } diff --git a/src/steps/generic.rs b/src/steps/generic.rs index eaf19882..15640153 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -1,4 +1,4 @@ -use crate::error::Error; +use crate::error::{Error, ErrorKind}; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::{self, PathExt}; @@ -8,223 +8,120 @@ use std::process::Command; const EMACS_UPGRADE: &str = include_str!("emacs.el"); -#[must_use] -pub fn run_cargo_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(cargo_update) = utils::which("cargo-install-update") { - print_separator("Cargo"); +pub fn run_cargo_update(run_type: RunType) -> Result<(), Error> { + let cargo_update = utils::require("cargo-install-update")?; - let success = || -> Result<(), Error> { - run_type - .execute(cargo_update) - .args(&["install-update", "--git", "--all"]) - .check_run()?; + print_separator("Cargo"); - Ok(()) - }() - .is_ok(); - - return Some(("Cargo", success)); - } - - None + run_type + .execute(cargo_update) + .args(&["install-update", "--git", "--all"]) + .check_run() } -#[must_use] -pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(gem) = utils::which("gem") { - if base_dirs.home_dir().join(".gem").exists() { - print_separator("RubyGems"); +pub fn run_gem(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let gem = utils::require("gem")?; + base_dirs.home_dir().join(".gem").require()?; - let success = || -> Result<(), Error> { - run_type.execute(&gem).args(&["update", "--user-install"]).check_run()?; + print_separator("RubyGems"); - Ok(()) - }() - .is_ok(); - - return Some(("RubyGems", success)); - } - } - None + run_type.execute(&gem).args(&["update", "--user-install"]).check_run() } -#[must_use] -pub fn run_emacs(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(emacs) = utils::which("emacs") { - if let Some(init_file) = base_dirs.home_dir().join(".emacs.d/init.el").if_exists() { - print_separator("Emacs"); +pub fn run_emacs(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let emacs = utils::require("emacs")?; + let init_file = base_dirs.home_dir().join(".emacs.d/init.el").require()?; - let success = || -> Result<(), Error> { - run_type - .execute(&emacs) - .args(&["--batch", "-l", init_file.to_str().unwrap(), "--eval", EMACS_UPGRADE]) - .check_run()?; + print_separator("Emacs"); - Ok(()) - }() - .is_ok(); - - return Some(("Emacs", success)); - } - } - None + run_type + .execute(&emacs) + .args(&["--batch", "-l", init_file.to_str().unwrap(), "--eval", EMACS_UPGRADE]) + .check_run() } -#[must_use] #[cfg(not(any( target_os = "freebsd", target_os = "openbsd", target_os = "netbsd", target_os = "dragonfly" )))] -pub fn run_apm(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(apm) = utils::which("apm") { - print_separator("Atom Package Manager"); +pub fn run_apm(run_type: RunType) -> Result<(), Error> { + let apm = utils::require("apm")?; - let success = || -> Result<(), Error> { - run_type - .execute(&apm) - .args(&["upgrade", "--confirm=false"]) - .check_run()?; + print_separator("Atom Package Manager"); - Ok(()) - }() - .is_ok(); - - return Some(("apm", success)); - } - - None + run_type.execute(&apm).args(&["upgrade", "--confirm=false"]).check_run() } -#[must_use] -pub fn run_rustup(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(rustup) = utils::which("rustup") { - print_separator("rustup"); +pub fn run_rustup(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let rustup = utils::require("rustup")?; - let success = || -> Result<(), Error> { - if rustup.is_descendant_of(base_dirs.home_dir()) { - run_type.execute(&rustup).args(&["self", "update"]).check_run()?; - } + print_separator("rustup"); - run_type.execute(&rustup).arg("update").check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("rustup", success)); + if rustup.is_descendant_of(base_dirs.home_dir()) { + run_type.execute(&rustup).args(&["self", "update"]).check_run()?; } - None + run_type.execute(&rustup).arg("update").check_run() } -#[must_use] -pub fn run_jetpack(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(jetpack) = utils::which("jetpack") { - print_separator("Jetpack"); +pub fn run_jetpack(run_type: RunType) -> Result<(), Error> { + let jetpack = utils::require("jetpack")?; - let success = || -> Result<(), Error> { - run_type.execute(&jetpack).args(&["global", "update"]).check_run()?; - Ok(()) - }() - .is_ok(); + print_separator("Jetpack"); - return Some(("Jetpack", success)); - } - - None + run_type.execute(&jetpack).args(&["global", "update"]).check_run() } -#[must_use] -pub fn run_opam_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(opam) = utils::which("opam") { - print_separator("OCaml Package Manager"); +pub fn run_opam_update(run_type: RunType) -> Result<(), Error> { + let opam = utils::require("opam")?; - let success = || -> Result<(), Error> { - run_type.execute(&opam).arg("update").check_run()?; - run_type.execute(&opam).arg("upgrade").check_run()?; - Ok(()) - }() - .is_ok(); + print_separator("OCaml Package Manager"); - return Some(("OPAM", success)); - } - - None + run_type.execute(&opam).arg("update").check_run()?; + run_type.execute(&opam).arg("upgrade").check_run() } -#[must_use] -pub fn run_vcpkg_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(vcpkg) = utils::which("vcpkg") { - print_separator("vcpkg"); +pub fn run_vcpkg_update(run_type: RunType) -> Result<(), Error> { + let vcpkg = utils::require("vcpkg")?; + print_separator("vcpkg"); - let success = || -> Result<(), Error> { - run_type - .execute(&vcpkg) - .args(&["upgrade", "--no-dry-run"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("vcpkg", success)); - } - - None + run_type.execute(&vcpkg).args(&["upgrade", "--no-dry-run"]).check_run() } -#[must_use] -pub fn run_pipx_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(pipx) = utils::which("pipx") { - print_separator("pipx"); +pub fn run_pipx_update(run_type: RunType) -> Result<(), Error> { + let pipx = utils::require("pipx")?; + print_separator("pipx"); - let success = || -> Result<(), Error> { - run_type.execute(&pipx).arg("upgrade-all").check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("pipx", success)); - } - - None + run_type.execute(&pipx).arg("upgrade-all").check_run() } -#[must_use] pub fn run_custom_command(name: &str, command: &str, run_type: RunType) -> Result<(), Error> { print_separator(name); - run_type.execute("sh").arg("-c").arg(command).check_run()?; + run_type.execute("sh").arg("-c").arg(command).check_run() +} + +pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let composer = utils::require("composer")?; + let composer_home = Command::new(&composer) + .args(&["global", "config", "--absolute", "home"]) + .check_output() + .map_err(|_| Error::from(ErrorKind::SkipStep)) + .map(PathBuf::from) + .and_then(|p| p.require())?; + + if !composer_home.is_descendant_of(base_dirs.home_dir()) { + Err(ErrorKind::SkipStep)?; + } + + print_separator("Composer"); + + run_type.execute(&composer).args(&["global", "update"]).check_run()?; + + if let Some(valet) = utils::which("valet") { + run_type.execute(&valet).arg("install").check_run()?; + } Ok(()) } - -#[must_use] -pub fn run_composer_update(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(composer) = utils::which("composer") { - let composer_home = Command::new(&composer) - .args(&["global", "config", "--absolute", "home"]) - .check_output() - .map(PathBuf::from); - - if let Ok(composer_home) = composer_home { - if composer_home.is_descendant_of(base_dirs.home_dir()) { - print_separator("Composer"); - - let success = || -> Result<(), Error> { - run_type.execute(&composer).args(&["global", "update"]).check_run()?; - - if let Some(valet) = utils::which("valet") { - run_type.execute(&valet).arg("install").check_run()?; - } - - Ok(()) - }() - .is_ok(); - - return Some(("Composer", success)); - } - } - } - - None -} diff --git a/src/utils.rs b/src/utils.rs index 83b77a59..723d54d2 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -32,6 +32,9 @@ where { fn if_exists(self) -> Option; fn is_descendant_of(&self, ancestor: &Path) -> bool; + + /// Returns the path if it exists or ErrorKind::SkipStep otherwise + fn require(self) -> Result; } impl PathExt for PathBuf { @@ -46,6 +49,14 @@ impl PathExt for PathBuf { fn is_descendant_of(&self, ancestor: &Path) -> bool { self.iter().zip(ancestor.iter()).all(|(a, b)| a == b) } + + fn require(self) -> Result { + if self.exists() { + Ok(self) + } else { + Err(ErrorKind::SkipStep)? + } + } } pub fn which + Debug>(binary_name: T) -> Option { @@ -151,3 +162,21 @@ mod tests { assert_eq!("C:\\hi", humanize("//?/C:/hi")); } } + +pub fn require + Debug>(binary_name: T) -> Result { + match which_crate::which(&binary_name) { + Ok(path) => { + debug!("Detected {:?} as {:?}", &path, &binary_name); + Ok(path) + } + Err(e) => match e.kind() { + which_crate::ErrorKind::CannotFindBinaryPath => { + debug!("Cannot find {:?}", &binary_name); + Err(ErrorKind::SkipStep)? + } + _ => { + panic!("Detecting {:?} failed: {}", &binary_name, e); + } + }, + } +} From a6a73f7bb77379d5ea38e57a7338589ee3ab6dae Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 11:29:58 +0200 Subject: [PATCH 103/140] Do not perform CI on bors temporary branches --- .travis.yml | 5 +++++ appveyor.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.travis.yml b/.travis.yml index b8b74780..fa6346f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,3 +73,8 @@ before_cache: notifications: email: on_success: never + +branches: + except: + - staging.tmp + - trying.tmp diff --git a/appveyor.yml b/appveyor.yml index f6e7e8a7..fa6a7a6f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -55,3 +55,8 @@ notifications: # Building is done in the test phase, so we disable Appveyor's build phase. build: false + +branches: + except: + - staging.tmp + - trying.tmp From a1b3e37f93d2bef7f997f7df0a45de61032c4d8a Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 14:10:06 +0200 Subject: [PATCH 104/140] Convert more legacy steps --- src/main.rs | 14 +++++++++----- src/steps/os/linux.rs | 31 ++++++++++--------------------- src/utils.rs | 8 ++++++++ 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/main.rs b/src/main.rs index 998c4fbd..33971643 100644 --- a/src/main.rs +++ b/src/main.rs @@ -149,10 +149,12 @@ fn run() -> Result<(), Error> { if config.should_run(Step::System) { match &distribution { Ok(distribution) => { - report.push_result(execute_legacy( + execute( + &mut report, + "System update", || distribution.upgrade(&sudo, config.cleanup(), run_type), config.no_retry(), - )?); + )?; } Err(e) => { println!("Error detecting current distribution: {}", e); @@ -353,10 +355,12 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { report.push_result(execute_legacy(|| linux::run_fwupdmgr(run_type), config.no_retry())?); - report.push_result(execute_legacy( - || linux::run_needrestart(&sudo, run_type), + execute( + &mut report, + "Restarts", + || linux::run_needrestart(sudo.as_ref(), run_type), config.no_retry(), - )?); + )?; } #[cfg(target_os = "macos")] diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index ce308577..51bd4672 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -1,7 +1,7 @@ use crate::error::{Error, ErrorKind}; use crate::executor::RunType; use crate::terminal::{print_separator, print_warning}; -use crate::utils::which; +use crate::utils::{require, require_option, which}; use failure::ResultExt; use std::fs; use std::path::PathBuf; @@ -59,10 +59,10 @@ impl Distribution { } #[must_use] - pub fn upgrade(self, sudo: &Option, cleanup: bool, run_type: RunType) -> Option<(&'static str, bool)> { + pub fn upgrade(self, sudo: &Option, cleanup: bool, run_type: RunType) -> Result<(), Error> { print_separator("System update"); - let success = match self { + match self { Distribution::Arch => upgrade_arch_linux(&sudo, cleanup, run_type), Distribution::CentOS => upgrade_redhat(&sudo, run_type), Distribution::Fedora => upgrade_fedora(&sudo, run_type), @@ -70,9 +70,7 @@ impl Distribution { Distribution::Gentoo => upgrade_gentoo(&sudo, run_type), Distribution::OpenSuse => upgrade_opensuse(&sudo, run_type), Distribution::Void => upgrade_void(&sudo, run_type), - }; - - Some(("System update", success.is_ok())) + } } pub fn show_summary(self) { @@ -235,24 +233,15 @@ fn upgrade_debian(sudo: &Option, cleanup: bool, run_type: RunType) -> R Ok(()) } -#[must_use] -pub fn run_needrestart(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(sudo) = sudo { - if let Some(needrestart) = which("needrestart") { - print_separator("Check for needed restarts"); +pub fn run_needrestart(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> { + let sudo = require_option(sudo)?; + let needrestart = require("needrestart")?; - let success = || -> Result<(), Error> { - run_type.execute(&sudo).arg(needrestart).check_run()?; + print_separator("Check for needed restarts"); - Ok(()) - }() - .is_ok(); + run_type.execute(&sudo).arg(needrestart).check_run()?; - return Some(("Restarts", success)); - } - } - - None + Ok(()) } #[must_use] diff --git a/src/utils.rs b/src/utils.rs index 723d54d2..c8315a9e 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -180,3 +180,11 @@ pub fn require + Debug>(binary_name: T) -> Result(option: Option) -> Result { + if let Some(value) = option { + Ok(value) + } else { + Err(ErrorKind::SkipStep)? + } +} From 8b128888f77db594f61c171016f1bcc0f28fe739 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 14:11:16 +0200 Subject: [PATCH 105/140] Bump dependencies --- Cargo.lock | 184 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 92 insertions(+), 94 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef46f1db..d8bd03ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,7 +68,7 @@ name = "backtrace-sys" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -127,13 +127,13 @@ name = "bzip2-sys" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.28" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -230,10 +230,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -241,12 +241,10 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -255,18 +253,18 @@ name = "crossbeam-deque" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crossbeam-epoch" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -274,10 +272,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -306,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "encoding_rs" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -338,7 +337,7 @@ name = "failure_derive" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -385,7 +384,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "fuchsia-cprng" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -486,7 +485,7 @@ dependencies = [ "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -646,7 +645,7 @@ name = "miniz-sys" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -663,7 +662,7 @@ name = "miniz_oxide_c_api" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -712,7 +711,7 @@ dependencies = [ "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -731,7 +730,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -773,7 +772,7 @@ name = "openssl-sys" version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -802,7 +801,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -848,7 +847,7 @@ version = "0.7.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -872,7 +871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -888,7 +887,7 @@ name = "quote" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -896,7 +895,7 @@ name = "rand" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -905,28 +904,17 @@ dependencies = [ [[package]] name = "rand" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -970,15 +958,25 @@ dependencies = [ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_jitter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_os" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1056,7 +1054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1066,16 +1064,16 @@ dependencies = [ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1155,7 +1153,7 @@ dependencies = [ "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1176,30 +1174,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1209,7 +1207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1266,7 +1264,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1276,7 +1274,7 @@ name = "syn" version = "0.15.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1286,7 +1284,7 @@ name = "synstructure" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1314,12 +1312,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1391,7 +1389,7 @@ dependencies = [ "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1408,7 +1406,7 @@ name = "tokio-executor" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1427,7 +1425,7 @@ name = "tokio-reactor" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1458,23 +1456,23 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-timer" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1485,7 +1483,7 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1501,7 +1499,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1591,10 +1589,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "uuid" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1739,7 +1737,7 @@ dependencies = [ "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" -"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" +"checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" @@ -1750,15 +1748,15 @@ dependencies = [ "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" "checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" -"checksum crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "137bc235f622ffaa0428e3854e24acb53291fc0b3ff6fb2cb75a8be6fb02f06b" +"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" "checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" -"checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" -"checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" +"checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" +"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" -"checksum encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)" = "a69d152eaa438a291636c1971b0a370212165ca8a75759eb66818c5ce9b538f7" +"checksum encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0535f350c60aac0b87ccf28319abc749391e912192255b0c00a2c12c6917bd73" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" @@ -1767,7 +1765,7 @@ dependencies = [ "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81f7f8eb465745ea9b02e2704612a9946a59fa40572086c6fd49d6ddcf30bf31" +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" @@ -1821,18 +1819,18 @@ dependencies = [ "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" -"checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" +"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" -"checksum rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3906503e80ac6cbcacb2c2973fa8e473f24d7e2747c8c92bb230c2441cad96b5" +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -"checksum rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f46fbd5550acf75b0c2730f5dd1873751daf9beb8f11b44027778fae50d7feca" +"checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" +"checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" @@ -1854,9 +1852,9 @@ dependencies = [ "checksum self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4997d828329f3bea234b5efd084f0ee07b284a556d64023cc0e3e47cc44d74" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "534b8b91a95e0f71bca3ed5824752d558da048d4248c91af873b63bd60519752" -"checksum serde_derive 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "a915306b0f1ac5607797697148c223bedeaa36bcc2e28a01441cd638cc6567b4" -"checksum serde_json 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "4b90a9fbe1211e57d3e1c15670f1cb00802988fb23a1a4aad7a2b63544f1920e" +"checksum serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "2e20fde37801e83c891a2dc4ebd3b81f0da4d1fb67a9e0a2a3b921e2536a58ee" +"checksum serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "633e97856567e518b59ffb2ad7c7a4fd4c5d91d9c7f32dd38a27b2bf7e8114ea" +"checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" @@ -1871,7 +1869,7 @@ dependencies = [ "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" +"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" @@ -1885,7 +1883,7 @@ dependencies = [ "checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" "checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb" -"checksum tokio-timer 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "21c04a314a1f69f73c0227beba6250e06cdc1e9a62e7eff912bf54a59b6d1b94" +"checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" @@ -1899,7 +1897,7 @@ dependencies = [ "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" -"checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6" +"checksum uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768" "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" diff --git a/Cargo.toml b/Cargo.toml index 2c00bdaa..abbd4429 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ edition = "2018" directories = "1.0.2" failure = "0.1.5" failure_derive = "0.1.5" -serde = { version = "1.0.85", features = ["derive"] } +serde = { version = "1.0.87", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" From ca6e12a87d952896ad2f05a65932b60d71da5388 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 14:15:11 +0200 Subject: [PATCH 106/140] require_option is only required in Linux --- src/utils.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils.rs b/src/utils.rs index c8315a9e..3a00f542 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -181,6 +181,7 @@ pub fn require + Debug>(binary_name: T) -> Result(option: Option) -> Result { if let Some(value) = option { Ok(value) From f56b1076975e4e153a91d5bd370d313f2a11a699 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 14:15:35 +0200 Subject: [PATCH 107/140] Bad configuration --- src/utils.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.rs b/src/utils.rs index 3a00f542..e7e88030 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -181,7 +181,7 @@ pub fn require + Debug>(binary_name: T) -> Result(option: Option) -> Result { if let Some(value) = option { Ok(value) From e2d42b77a76adb4a63b22ca77eb9269de50c68dd Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 20:30:32 +0200 Subject: [PATCH 108/140] Run Powershell module update with verbose output --- src/steps/os/windows.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index dada49d7..5157f1b0 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -84,7 +84,10 @@ impl Powershell { print_separator("Powershell Modules Update"); let success = || -> Result<(), Error> { - run_type.execute(&powershell).arg("Update-Module").check_run()?; + run_type + .execute(&powershell) + .args(&["Update-Module", "-v"]) + .check_run()?; Ok(()) }() .is_ok(); From a85311608e1b54f8575ed55f58cfd3aeee8bb043 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Feb 2019 20:38:51 +0200 Subject: [PATCH 109/140] Windows step refactoring --- src/main.rs | 21 +++++++--- src/steps/os/windows.rs | 88 +++++++++++------------------------------ src/utils.rs | 2 +- 3 files changed, 40 insertions(+), 71 deletions(-) diff --git a/src/main.rs b/src/main.rs index 33971643..a6183008 100644 --- a/src/main.rs +++ b/src/main.rs @@ -134,10 +134,12 @@ fn run() -> Result<(), Error> { #[cfg(windows)] { if powershell.profile().is_some() && config.should_run(Step::Powershell) { - report.push_result(execute_legacy( + execute( + &mut report, + "Powershell Modules Update", || powershell.update_modules(run_type), config.no_retry(), - )?); + )?; } } @@ -168,10 +170,15 @@ fn run() -> Result<(), Error> { } #[cfg(windows)] - report.push_result(execute_legacy(|| windows::run_chocolatey(run_type), config.no_retry())?); + execute( + &mut report, + "Chocolatey", + || windows::run_chocolatey(run_type), + config.no_retry(), + )?; #[cfg(windows)] - report.push_result(execute_legacy(|| windows::run_scoop(run_type), config.no_retry())?); + execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?; #[cfg(unix)] report.push_result(execute_legacy( @@ -383,10 +390,12 @@ fn run() -> Result<(), Error> { #[cfg(windows)] { if config.should_run(Step::System) { - report.push_result(execute_legacy( + execute( + &mut report, + "Windows update", || powershell.windows_update(run_type), config.no_retry(), - )?); + )?; } } diff --git a/src/steps/os/windows.rs b/src/steps/os/windows.rs index 5157f1b0..c9115ee3 100644 --- a/src/steps/os/windows.rs +++ b/src/steps/os/windows.rs @@ -1,43 +1,24 @@ -use crate::error::Error; +use crate::error::{Error, ErrorKind}; use crate::executor::{CommandExt, RunType}; use crate::terminal::{is_dumb, print_separator}; -use crate::utils::{self, which}; +use crate::utils::{require, require_option, which}; use std::path::PathBuf; use std::process::Command; -#[must_use] -pub fn run_chocolatey(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(choco) = utils::which("choco") { - print_separator("Chocolatey"); +pub fn run_chocolatey(run_type: RunType) -> Result<(), Error> { + let choco = require("choco")?; - let success = || -> Result<(), Error> { - run_type.execute(&choco).args(&["upgrade", "all"]).check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("Chocolatey", success)); - } - - None + print_separator("Chocolatey"); + run_type.execute(&choco).args(&["upgrade", "all"]).check_run() } -#[must_use] -pub fn run_scoop(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(scoop) = utils::which("scoop") { - print_separator("Scoop"); +pub fn run_scoop(run_type: RunType) -> Result<(), Error> { + let scoop = require("scoop")?; - let success = || -> Result<(), Error> { - run_type.execute(&scoop).args(&["update"]).check_run()?; - run_type.execute(&scoop).args(&["update", "*"]).check_run()?; - Ok(()) - }() - .is_ok(); + print_separator("Scoop"); - return Some(("Scoop", success)); - } - - None + run_type.execute(&scoop).args(&["update"]).check_run()?; + run_type.execute(&scoop).args(&["update", "*"]).check_run() } pub struct Powershell { @@ -78,45 +59,24 @@ impl Powershell { self.profile.as_ref() } - #[must_use] - pub fn update_modules(&self, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(powershell) = &self.path { - print_separator("Powershell Modules Update"); + pub fn update_modules(&self, run_type: RunType) -> Result<(), Error> { + let powershell = require_option(self.path.as_ref())?; - let success = || -> Result<(), Error> { - run_type - .execute(&powershell) - .args(&["Update-Module", "-v"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("Powershell Modules Update", success)); - } - - None + print_separator("Powershell Modules Update"); + run_type.execute(&powershell).args(&["Update-Module", "-v"]).check_run() } - #[must_use] - pub fn windows_update(&self, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(powershell) = &self.path { - if Self::has_command(&powershell, "Install-WindowsUpdate") { - print_separator("Windows Update"); + pub fn windows_update(&self, run_type: RunType) -> Result<(), Error> { + let powershell = require_option(self.path.as_ref())?; - let success = || -> Result<(), Error> { - run_type - .execute(&powershell) - .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("Windows Update", success)); - } + if !Self::has_command(&powershell, "Install-WindowsUpdate") { + Err(ErrorKind::SkipStep)?; } + print_separator("Windows Update"); - None + run_type + .execute(&powershell) + .args(&["-Command", "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -Verbose"]) + .check_run() } } diff --git a/src/utils.rs b/src/utils.rs index e7e88030..ceaf3842 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -181,7 +181,7 @@ pub fn require + Debug>(binary_name: T) -> Result(option: Option) -> Result { if let Some(value) = option { Ok(value) From c3db8c0f048cb74b1fb260b099c58ca78f124783 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 12 Feb 2019 19:50:00 +0200 Subject: [PATCH 110/140] Canonicalize rustup path before checking if its origin (fix #124) --- src/steps/generic.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/steps/generic.rs b/src/steps/generic.rs index 15640153..e44c6ffd 100644 --- a/src/steps/generic.rs +++ b/src/steps/generic.rs @@ -3,6 +3,7 @@ use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::{self, PathExt}; use directories::BaseDirs; +use failure::ResultExt; use std::path::PathBuf; use std::process::Command; @@ -59,7 +60,11 @@ pub fn run_rustup(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> print_separator("rustup"); - if rustup.is_descendant_of(base_dirs.home_dir()) { + if rustup + .canonicalize() + .context(ErrorKind::StepFailed)? + .is_descendant_of(base_dirs.home_dir()) + { run_type.execute(&rustup).args(&["self", "update"]).check_run()?; } From 5c135d4c459b76bdd67d05ee2b3c907b14d95fcb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 08:52:18 +0200 Subject: [PATCH 111/140] Only run the CI on the master and bors branches --- .travis.yml | 7 ++++--- appveyor.yml | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index fa6346f5..f9ff5db5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -75,6 +75,7 @@ notifications: on_success: never branches: - except: - - staging.tmp - - trying.tmp + only: + - staging + - trying + - master diff --git a/appveyor.yml b/appveyor.yml index fa6a7a6f..df471b54 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -57,6 +57,7 @@ notifications: build: false branches: - except: - - staging.tmp - - trying.tmp + only: + - staging + - trying + - master From 3ef9166d2b8fcc27e4751f23dd9f5098e2f783fb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 08:47:01 +0200 Subject: [PATCH 112/140] Support Pearl (fix #126) --- src/main.rs | 2 ++ src/steps/os/unix.rs | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index a6183008..88d08fa5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -294,6 +294,8 @@ fn run() -> Result<(), Error> { || generic::run_pipx_update(run_type), config.no_retry(), )?; + #[cfg(unix)] + execute(&mut report, "pearl", || unix::run_pearl(run_type), config.no_retry())?; execute( &mut report, "jetpak", diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 64905084..a61c8ecc 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::which; +use crate::utils::{require, which}; use directories::BaseDirs; use std::path::Path; use std::process::Command; @@ -99,3 +99,10 @@ pub fn run_nix(run_type: RunType) -> Option<(&'static str, bool)> { None } + +pub fn run_pearl(run_type: RunType) -> Result<(), Error> { + let pearl = require("pearl")?; + print_separator("pearl"); + + run_type.execute(&pearl).arg("update").check_run() +} From c45c05884a05ec772c2b3808a8ddd0153097e4c6 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 10:11:34 +0200 Subject: [PATCH 113/140] Add Pearl to the documentation #126 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f639aef..1092f32e 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Just run `topgrade`. It will run the following steps: * **FreeBSD**: Upgrade and audit packages * **Unix**: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * **Unix**: Run `nix upgrade-nix && nix --upgrade`. +* **Unix**: Run `pearl upgrade`. * **Windows**: Upgrade Powershell modules * **Windows**: Upgrade all [Chocolatey](https://chocolatey.org/) packages * **Windows**: Upgrade all [Scoop](https://scoop.sh) packages From 1ecb3a8f21d56cf133cf0369affc82058d1f59c1 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 10:15:05 +0200 Subject: [PATCH 114/140] Dependencies bump and version update --- Cargo.lock | 104 +++++++++++++++++++++++------------------------------ Cargo.toml | 4 +-- 2 files changed, 46 insertions(+), 62 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8bd03ca..e367ba05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,10 +13,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -235,7 +235,7 @@ dependencies = [ "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -245,7 +245,7 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -412,7 +412,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -465,7 +465,7 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -512,7 +512,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -577,7 +577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libflate" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -609,12 +609,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "memoffset" @@ -711,7 +707,7 @@ dependencies = [ "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -743,7 +739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num_cpus" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", @@ -803,7 +799,7 @@ dependencies = [ "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1024,8 +1020,8 @@ name = "regex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1049,7 +1045,7 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1057,14 +1053,14 @@ dependencies = [ "encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1151,7 +1147,7 @@ dependencies = [ "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1174,15 +1170,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.87" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.87" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1197,7 +1193,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1207,7 +1203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1228,11 +1224,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "stable_deref_trait" @@ -1312,7 +1305,7 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1383,7 +1376,7 @@ dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1430,7 +1423,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1461,7 +1454,7 @@ dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1483,12 +1476,12 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "topgrade" -version = "1.6.1" +version = "1.7.0" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1499,7 +1492,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1546,7 +1539,7 @@ name = "unicode-normalization" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1564,14 +1557,6 @@ name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "url" version = "1.7.2" @@ -1714,7 +1699,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1722,7 +1707,7 @@ dependencies = [ [metadata] "checksum MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eaf9f0d0b1cc33a4d2aee14fb4b2eac03462ef4db29c8ac4057327d8a71ad86f" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" +"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" @@ -1775,7 +1760,7 @@ dependencies = [ "checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46" +"checksum hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)" = "fdfa9b401ef6c4229745bb6e9b2529192d07b920eed624cdee2a82348cd550af" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1787,11 +1772,11 @@ dependencies = [ "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" -"checksum libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "bff3ac7d6f23730d3b533c35ed75eef638167634476a499feef16c428d74b57b" +"checksum libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "54d1ddf9c52870243c5689d7638d888331c1116aa5b398f3ba1acfa7d8758ca1" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -"checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8" +"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" @@ -1804,7 +1789,7 @@ dependencies = [ "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46f0f3210768d796e8fa79ec70ee6af172dacbe7147f5e69be5240a47778302b" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" +"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" "checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" @@ -1839,7 +1824,7 @@ dependencies = [ "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)" = "09d6e187a58d923ee132fcda141c94e716bcfe301c2ea2bef5c81536e0085376" +"checksum reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "f205a95638627fc0d21c53901671b06f439dc2830311ff11ecdff34ae2d839a8" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" @@ -1852,14 +1837,14 @@ dependencies = [ "checksum self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4997d828329f3bea234b5efd084f0ee07b284a556d64023cc0e3e47cc44d74" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "2e20fde37801e83c891a2dc4ebd3b81f0da4d1fb67a9e0a2a3b921e2536a58ee" -"checksum serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "633e97856567e518b59ffb2ad7c7a4fd4c5d91d9c7f32dd38a27b2bf7e8114ea" +"checksum serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "9f301d728f2b94c9a7691c90f07b0b4e8a4517181d9461be94c04bddeb4bd850" +"checksum serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "beed18e6f5175aef3ba670e57c60ef3b1b74d250d962a26604bff4c80e970dd4" "checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -"checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15" +"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" @@ -1869,7 +1854,7 @@ dependencies = [ "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff" +"checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" @@ -1894,7 +1879,6 @@ dependencies = [ "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768" diff --git a/Cargo.toml b/Cargo.toml index abbd4429..694a254f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.6.1" +version = "1.7.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" @@ -12,7 +12,7 @@ edition = "2018" directories = "1.0.2" failure = "0.1.5" failure_derive = "0.1.5" -serde = { version = "1.0.87", features = ["derive"] } +serde = { version = "1.0.88", features = ["derive"] } toml = "0.4.10" which_crate = { version = "2.0.1", package = "which" } shellexpand = "1.0.0" From d79be8bcd0c81e3145615aef3f1237409eef7d40 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 10:48:45 +0200 Subject: [PATCH 115/140] Run the CI on version tags --- .travis.yml | 1 + appveyor.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index f9ff5db5..7d8f888b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -79,3 +79,4 @@ branches: - staging - trying - master + - /^v[\d.]+$/ diff --git a/appveyor.yml b/appveyor.yml index df471b54..168880ac 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,3 +61,4 @@ branches: - staging - trying - master + - /^v[\d.]+$/ From d7555725fe4bad19a0926647a39b1d2ed0432640 Mon Sep 17 00:00:00 2001 From: Filippo Squillace Date: Wed, 20 Feb 2019 22:22:42 +1100 Subject: [PATCH 116/140] Fix Pearl command in README.md (#128) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1092f32e..9017e354 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Just run `topgrade`. It will run the following steps: * **FreeBSD**: Upgrade and audit packages * **Unix**: Run `brew update && brew upgrade`. This should handle both Homebrew and Linuxbrew * **Unix**: Run `nix upgrade-nix && nix --upgrade`. -* **Unix**: Run `pearl upgrade`. +* **Unix**: Run [Pearl](https://github.com/pearl-core/pearl) `pearl update`. * **Windows**: Upgrade Powershell modules * **Windows**: Upgrade all [Chocolatey](https://chocolatey.org/) packages * **Windows**: Upgrade all [Scoop](https://scoop.sh) packages From d59bf29b2a73fb4b61ff9907d7d757091bf361fd Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 19 Feb 2019 10:48:45 +0200 Subject: [PATCH 117/140] Run the CI on version tags --- .travis.yml | 1 + appveyor.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index f9ff5db5..7d8f888b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -79,3 +79,4 @@ branches: - staging - trying - master + - /^v[\d.]+$/ diff --git a/appveyor.yml b/appveyor.yml index df471b54..168880ac 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,3 +61,4 @@ branches: - staging - trying - master + - /^v[\d.]+$/ From 55577851f5cfc70e014b1adb2f03f072ce08df1c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 25 Feb 2019 15:10:28 +0200 Subject: [PATCH 118/140] More step refactoring --- src/main.rs | 29 ++++++++++--- src/steps/os/linux.rs | 99 ++++++++++++++----------------------------- 2 files changed, 54 insertions(+), 74 deletions(-) diff --git a/src/main.rs b/src/main.rs index 88d08fa5..3450e2a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -162,10 +162,12 @@ fn run() -> Result<(), Error> { println!("Error detecting current distribution: {}", e); } } - report.push_result(execute_legacy( - || linux::run_etc_update(&sudo, run_type), + execute( + &mut report, + "etc-update", + || linux::run_etc_update(sudo.as_ref(), run_type), config.no_retry(), - )?); + )?; } } @@ -348,8 +350,18 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute_legacy(|| linux::flatpak_update(run_type), config.no_retry())?); - report.push_result(execute_legacy(|| linux::run_snap(&sudo, run_type), config.no_retry())?); + execute( + &mut report, + "Flatpak", + || linux::flatpak_update(run_type), + config.no_retry(), + )?; + execute( + &mut report, + "snap", + || linux::run_snap(sudo.as_ref(), run_type), + config.no_retry(), + )?; } if let Some(commands) = config.commands() { @@ -363,7 +375,12 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "linux")] { - report.push_result(execute_legacy(|| linux::run_fwupdmgr(run_type), config.no_retry())?); + execute( + &mut report, + "Firmware upgrades", + || linux::run_fwupdmgr(run_type), + config.no_retry(), + )?; execute( &mut report, "Restarts", diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index 51bd4672..660b2dd1 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -245,88 +245,51 @@ pub fn run_needrestart(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), } #[must_use] -pub fn run_fwupdmgr(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(fwupdmgr) = which("fwupdmgr") { - print_separator("Firmware upgrades"); +pub fn run_fwupdmgr(run_type: RunType) -> Result<(), Error> { + let fwupdmgr = require("fwupdmgr")?; - let success = || -> Result<(), Error> { - run_type.execute(&fwupdmgr).arg("refresh").check_run()?; - run_type.execute(&fwupdmgr).arg("get-updates").check_run()?; - Ok(()) - }() - .is_ok(); + print_separator("Firmware upgrades"); - return Some(("Firmware upgrade", success)); - } - - None + run_type.execute(&fwupdmgr).arg("refresh").check_run()?; + run_type.execute(&fwupdmgr).arg("get-updates").check_run() } #[must_use] -pub fn flatpak_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(flatpak) = which("flatpak") { - print_separator("Flatpak User Packages"); +pub fn flatpak_update(run_type: RunType) -> Result<(), Error> { + let flatpak = require("flatpak")?; + print_separator("Flatpak User Packages"); - let success = || -> Result<(), Error> { - run_type - .execute(&flatpak) - .args(&["update", "--user", "-y"]) - .check_run()?; - run_type - .execute(&flatpak) - .args(&["update", "--system", "-y"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("Flatpak User Packages", success)); - } - - None + run_type + .execute(&flatpak) + .args(&["update", "--user", "-y"]) + .check_run()?; + run_type + .execute(&flatpak) + .args(&["update", "--system", "-y"]) + .check_run() } #[must_use] -pub fn run_snap(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(sudo) = sudo { - if let Some(snap) = which("snap") { - if PathBuf::from("/var/snapd.socket").exists() { - print_separator("snap"); +pub fn run_snap(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> { + let sudo = require_option(sudo)?; + let snap = require("snap")?; - let success = || -> Result<(), Error> { - run_type - .execute(&sudo) - .args(&[snap.to_str().unwrap(), "refresh"]) - .check_run()?; - - Ok(()) - }() - .is_ok(); - - return Some(("snap", success)); - } - } + if !PathBuf::from("/var/snapd.socket").exists() { + Err(ErrorKind::SkipStep)?; } + print_separator("snap"); - None + run_type + .execute(sudo) + .args(&[snap.to_str().unwrap(), "refresh"]) + .check_run() } #[must_use] -pub fn run_etc_update(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(sudo) = sudo { - if let Some(etc_update) = which("etc-update") { - print_separator("etc-update"); +pub fn run_etc_update(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> { + let sudo = require_option(sudo)?; + let etc_update = require("etc_update")?; + print_separator("etc-update"); - let success = || -> Result<(), Error> { - run_type.execute(&sudo).arg(&etc_update.to_str().unwrap()).check_run()?; - - Ok(()) - }() - .is_ok(); - - return Some(("etc-update", success)); - } - } - - None + run_type.execute(sudo).arg(&etc_update.to_str().unwrap()).check_run() } From 2d2804bf03922da9ba113e49fcdb3d087c9f95b5 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 26 Feb 2019 02:34:51 -0800 Subject: [PATCH 119/140] fix(zplug): search appropriate paths for zplug folder Check ZPLUG_HOME environment variable in addition to ~/.zplug. Also consider ZDOTDIR when sourcing .zshrc. --- src/steps/os/unix.rs | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index a61c8ecc..895e8baa 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,20 +1,44 @@ -use crate::error::Error; +use crate::error::{Error, ErrorKind::*}; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::{require, which}; use directories::BaseDirs; use std::path::Path; use std::process::Command; +use std::env; + +fn zplug_exists(base_dirs: &BaseDirs) -> bool { + let home_exists = match env::var("ZPLUG_HOME") { + Ok(ref zplug_home) => Path::new(zplug_home).exists(), + Err(_) => false, + }; + let dotdir_exists = base_dirs.home_dir().join(".zplug").exists(); + home_exists || dotdir_exists +} + +fn get_zshrc(base_dirs: &BaseDirs) -> Result { + let zshrc = match env::var("ZDOTDIR") { + Ok(ref zdotdir) => Ok(Path::new(zdotdir).join(".zshrc")), + Err(_) => Err(()), + }; + zshrc + .unwrap_or(base_dirs.home_dir().join(".zshrc")) + .to_str() + .map(|s| s.to_owned()) + .ok_or(()) +} pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { if let Some(zsh) = which("zsh") { - if base_dirs.home_dir().join(".zplug").exists() { + if zplug_exists(base_dirs) { print_separator("zplug"); let success = || -> Result<(), Error> { + let zshrc = get_zshrc(base_dirs).map_err(|_| Error::from(SkipStep))?; + let cmd = format!("source {} && zplug update", zshrc); run_type .execute(zsh) - .args(&["-c", "source ~/.zshrc && zplug update"]) + .args(&["-c", cmd.as_str()]) .check_run()?; Ok(()) }() From 4d98fe86e251feac420caf47a404e128af42f62f Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 26 Feb 2019 02:40:51 -0800 Subject: [PATCH 120/140] style: make rustfmt compliant --- src/steps/os/unix.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 895e8baa..6cf6eba2 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -3,16 +3,16 @@ use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::{require, which}; use directories::BaseDirs; +use std::env; use std::path::Path; use std::process::Command; -use std::env; fn zplug_exists(base_dirs: &BaseDirs) -> bool { let home_exists = match env::var("ZPLUG_HOME") { Ok(ref zplug_home) => Path::new(zplug_home).exists(), Err(_) => false, }; - let dotdir_exists = base_dirs.home_dir().join(".zplug").exists(); + let dotdir_exists = base_dirs.home_dir().join(".zplug").exists(); home_exists || dotdir_exists } @@ -36,10 +36,7 @@ pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static st let success = || -> Result<(), Error> { let zshrc = get_zshrc(base_dirs).map_err(|_| Error::from(SkipStep))?; let cmd = format!("source {} && zplug update", zshrc); - run_type - .execute(zsh) - .args(&["-c", cmd.as_str()]) - .check_run()?; + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run()?; Ok(()) }() .is_ok(); From 6003ffc83c84d1f24e1532f982df34cde15adb05 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 26 Feb 2019 02:47:14 -0800 Subject: [PATCH 121/140] style: make clippy compliant --- src/steps/os/unix.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 6cf6eba2..8afaca29 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -22,7 +22,7 @@ fn get_zshrc(base_dirs: &BaseDirs) -> Result { Err(_) => Err(()), }; zshrc - .unwrap_or(base_dirs.home_dir().join(".zshrc")) + .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) .to_str() .map(|s| s.to_owned()) .ok_or(()) From 79cb5a52843cf3365d626553fb81f18ffee5d8e2 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 26 Feb 2019 03:14:40 -0800 Subject: [PATCH 122/140] refactor(zplug): remove match expressions --- src/steps/os/unix.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 8afaca29..a38fd47c 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -8,20 +8,15 @@ use std::path::Path; use std::process::Command; fn zplug_exists(base_dirs: &BaseDirs) -> bool { - let home_exists = match env::var("ZPLUG_HOME") { - Ok(ref zplug_home) => Path::new(zplug_home).exists(), - Err(_) => false, - }; - let dotdir_exists = base_dirs.home_dir().join(".zplug").exists(); - home_exists || dotdir_exists + env::var("ZPLUG_HOME") + .map(|ref zplug_home| Path::new(zplug_home).exists()) + .map(|p| p || base_dirs.home_dir().join("zplug").exists()) + .unwrap_or(false) } fn get_zshrc(base_dirs: &BaseDirs) -> Result { - let zshrc = match env::var("ZDOTDIR") { - Ok(ref zdotdir) => Ok(Path::new(zdotdir).join(".zshrc")), - Err(_) => Err(()), - }; - zshrc + env::var("ZDOTDIR") + .map(|ref zdotdir| Path::new(zdotdir).join(".zshrc")) .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) .to_str() .map(|s| s.to_owned()) From ba6ca1d1db62330f75f3ef84545f5647d39382c3 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 26 Feb 2019 16:05:10 +0200 Subject: [PATCH 123/140] Pull bspwm --- src/main.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.rs b/src/main.rs index 3450e2a0..2d13cc1c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -220,6 +220,7 @@ fn run() -> Result<(), Error> { git_repos.insert(base_dirs.home_dir().join(".tmux")); git_repos.insert(base_dirs.home_dir().join(".config/fish")); git_repos.insert(base_dirs.config_dir().join("openbox")); + git_repos.insert(base_dirs.config_dir().join("bspwm")); } #[cfg(windows)] From d0248385d5faeee6eb4aacfb20eece2889f45a6a Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 26 Feb 2019 11:53:22 -0800 Subject: [PATCH 124/140] refactor(zplug): return PathBuf to .zshrc file --- src/steps/os/unix.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index a38fd47c..212c1839 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -4,22 +4,22 @@ use crate::terminal::print_separator; use crate::utils::{require, which}; use directories::BaseDirs; use std::env; -use std::path::Path; +use std::path::{Path, PathBuf}; use std::process::Command; fn zplug_exists(base_dirs: &BaseDirs) -> bool { env::var("ZPLUG_HOME") .map(|ref zplug_home| Path::new(zplug_home).exists()) - .map(|p| p || base_dirs.home_dir().join("zplug").exists()) .unwrap_or(false) + || base_dirs.home_dir().join("zplug").exists() } -fn get_zshrc(base_dirs: &BaseDirs) -> Result { +fn get_zshrc(base_dirs: &BaseDirs) -> Result { env::var("ZDOTDIR") .map(|ref zdotdir| Path::new(zdotdir).join(".zshrc")) .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) .to_str() - .map(|s| s.to_owned()) + .map(PathBuf::from) .ok_or(()) } @@ -30,7 +30,7 @@ pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static st let success = || -> Result<(), Error> { let zshrc = get_zshrc(base_dirs).map_err(|_| Error::from(SkipStep))?; - let cmd = format!("source {} && zplug update", zshrc); + let cmd = format!("source {} && zplug update", zshrc.display()); run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run()?; Ok(()) }() From da25634c18320880fa1aed440e8675cc58498684 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 27 Feb 2019 09:47:20 +0200 Subject: [PATCH 125/140] Add a flag for disabling Powershell --- src/config.rs | 3 +++ src/main.rs | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 7a393f99..bbfd137d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -23,6 +23,9 @@ lazy_static! { m.insert("emacs", Step::Emacs); m.insert("gem", Step::Gem); + #[cfg(windows)] + m.insert("powershell", Step::Powershell); + m }; } diff --git a/src/main.rs b/src/main.rs index 2d13cc1c..8fc54e28 100644 --- a/src/main.rs +++ b/src/main.rs @@ -131,9 +131,12 @@ fn run() -> Result<(), Error> { #[cfg(windows)] let powershell = windows::Powershell::new(); + #[cfg(windows)] + let should_run_powershell = powershell.profile().is_some() && config.should_run(Step::Powershell); + #[cfg(windows)] { - if powershell.profile().is_some() && config.should_run(Step::Powershell) { + if should_run_powershell { execute( &mut report, "Powershell Modules Update", From 32a151227aab05d2d60a27c3fcf6cb676a6ca940 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 27 Feb 2019 10:06:54 +0200 Subject: [PATCH 126/140] ZSH improvments --- src/steps/os/unix.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 212c1839..6b0f4105 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,7 +1,7 @@ -use crate::error::{Error, ErrorKind::*}; +use crate::error::Error; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{require, which}; +use crate::utils::{require, which, PathExt}; use directories::BaseDirs; use std::env; use std::path::{Path, PathBuf}; @@ -14,13 +14,10 @@ fn zplug_exists(base_dirs: &BaseDirs) -> bool { || base_dirs.home_dir().join("zplug").exists() } -fn get_zshrc(base_dirs: &BaseDirs) -> Result { +fn get_zshrc(base_dirs: &BaseDirs) -> PathBuf { env::var("ZDOTDIR") - .map(|ref zdotdir| Path::new(zdotdir).join(".zshrc")) - .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) - .to_str() .map(PathBuf::from) - .ok_or(()) + .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) } pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { @@ -29,7 +26,7 @@ pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static st print_separator("zplug"); let success = || -> Result<(), Error> { - let zshrc = get_zshrc(base_dirs).map_err(|_| Error::from(SkipStep))?; + let zshrc = get_zshrc(base_dirs).require()?; let cmd = format!("source {} && zplug update", zshrc.display()); run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run()?; Ok(()) From 78652d68d43c6907623459cb1effc44ca76b525b Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 27 Feb 2019 10:31:30 +0200 Subject: [PATCH 127/140] Refactor unix steps --- src/main.rs | 20 ++++--- src/steps/os/unix.rs | 136 +++++++++++++++---------------------------- 2 files changed, 61 insertions(+), 95 deletions(-) diff --git a/src/main.rs b/src/main.rs index 2d13cc1c..a47f5523 100644 --- a/src/main.rs +++ b/src/main.rs @@ -183,17 +183,19 @@ fn run() -> Result<(), Error> { execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?; #[cfg(unix)] - report.push_result(execute_legacy( + execute( + &mut report, + "brew", || unix::run_homebrew(config.cleanup(), run_type), config.no_retry(), - )?); + )?; #[cfg(target_os = "freebsd")] report.push_result(execute_legacy( || freebsd::upgrade_packages(&sudo, run_type), config.no_retry(), )?); #[cfg(unix)] - report.push_result(execute_legacy(|| unix::run_nix(run_type), config.no_retry())?); + execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?; if config.should_run(Step::Emacs) { #[cfg(unix)] @@ -243,14 +245,18 @@ fn run() -> Result<(), Error> { #[cfg(unix)] { - report.push_result(execute_legacy( + execute( + &mut report, + "zplug", || unix::run_zplug(&base_dirs, run_type), config.no_retry(), - )?); - report.push_result(execute_legacy( + )?; + execute( + &mut report, + "fisher", || unix::run_fisher(&base_dirs, run_type), config.no_retry(), - )?); + )?; report.push_result(execute_legacy( || tmux::run_tpm(&base_dirs, run_type), config.no_retry(), diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 6b0f4105..e98e7bb4 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -1,116 +1,76 @@ use crate::error::Error; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{require, which, PathExt}; +use crate::utils::{require, PathExt}; use directories::BaseDirs; use std::env; use std::path::{Path, PathBuf}; use std::process::Command; -fn zplug_exists(base_dirs: &BaseDirs) -> bool { +pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let zsh = require("zsh")?; + env::var("ZPLUG_HOME") - .map(|ref zplug_home| Path::new(zplug_home).exists()) - .unwrap_or(false) - || base_dirs.home_dir().join("zplug").exists() -} - -fn get_zshrc(base_dirs: &BaseDirs) -> PathBuf { - env::var("ZDOTDIR") .map(PathBuf::from) + .unwrap_or_else(|_| base_dirs.home_dir().join("zplug")) + .require()?; + + let zshrc = env::var("ZDOTDIR") + .map(|p| Path::new(&p).join(".zshrc")) .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) + .require()?; + + let cmd = format!("source {} && zplug update", zshrc.display()); + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() } -pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(zsh) = which("zsh") { - if zplug_exists(base_dirs) { - print_separator("zplug"); - - let success = || -> Result<(), Error> { - let zshrc = get_zshrc(base_dirs).require()?; - let cmd = format!("source {} && zplug update", zshrc.display()); - run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("zplug", success)); - } - } - - None -} - -pub fn run_fisher(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(fish) = which("fish") { - if base_dirs.home_dir().join(".config/fish/functions/fisher.fish").exists() { - print_separator("fisher"); - - let success = || -> Result<(), Error> { - run_type - .execute(&fish) - .args(&["-c", "fisher self-update"]) - .check_run()?; - run_type.execute(&fish).args(&["-c", "fisher"]).check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("fisher", success)); - } - } - - None +pub fn run_fisher(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let fish = require("fish")?; + base_dirs + .home_dir() + .join(".config/fish/functions/fisher.fish") + .require()?; + run_type + .execute(&fish) + .args(&["-c", "fisher self-update"]) + .check_run()?; + run_type.execute(&fish).args(&["-c", "fisher"]).check_run() } #[must_use] -pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(brew) = which("brew") { - print_separator("Brew"); +pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Result<(), Error> { + let brew = require("brew")?; + print_separator("Brew"); - let inner = || -> Result<(), Error> { - run_type.execute(&brew).arg("update").check_run()?; - run_type.execute(&brew).arg("upgrade").check_run()?; + run_type.execute(&brew).arg("update").check_run()?; + run_type.execute(&brew).arg("upgrade").check_run()?; - let cask_upgrade_exists = Command::new(&brew) - .args(&["--repository", "buo/cask-upgrade"]) - .check_output() - .map(|p| Path::new(p.trim()).exists())?; + let cask_upgrade_exists = Command::new(&brew) + .args(&["--repository", "buo/cask-upgrade"]) + .check_output() + .map(|p| Path::new(p.trim()).exists())?; - if cask_upgrade_exists { - run_type.execute(&brew).args(&["cu", "-a"]).check_run()?; - } else { - run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; - } - - if cleanup { - run_type.execute(&brew).arg("cleanup").check_run()?; - } - Ok(()) - }; - - return Some(("Brew", inner().is_ok())); + if cask_upgrade_exists { + run_type.execute(&brew).args(&["cu", "-a"]).check_run()?; + } else { + run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; } - None + if cleanup { + run_type.execute(&brew).arg("cleanup").check_run()?; + } + + Ok(()) } #[must_use] -pub fn run_nix(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(nix) = which("nix") { - if let Some(nix_env) = which("nix-env") { - print_separator("Nix"); +pub fn run_nix(run_type: RunType) -> Result<(), Error> { + let nix = require("nix")?; + let nix_env = require("nix_env")?; - let inner = || -> Result<(), Error> { - run_type.execute(&nix).arg("upgrade-nix").check_run()?; - run_type.execute(&nix_env).arg("--upgrade").check_run()?; - Ok(()) - }; - - return Some(("Nix", inner().is_ok())); - } - } - - None + print_separator("Nix"); + run_type.execute(&nix).arg("upgrade-nix").check_run()?; + run_type.execute(&nix_env).arg("--upgrade").check_run() } pub fn run_pearl(run_type: RunType) -> Result<(), Error> { From 8c8f7b4c0189e034a6351e15062668491bf96284 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 3 Mar 2019 11:19:42 +0200 Subject: [PATCH 128/140] Version bump and dependencies upgrade --- Cargo.lock | 345 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 171 insertions(+), 176 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e367ba05..c7260b7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "MacTypes-sys" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -40,7 +40,7 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -52,13 +52,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "backtrace" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -68,8 +68,8 @@ name = "backtrace-sys" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -119,7 +119,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -127,13 +127,13 @@ name = "bzip2-sys" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -161,8 +161,8 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -182,10 +182,10 @@ dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -197,7 +197,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -205,7 +205,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -224,33 +224,9 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "crossbeam-channel" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-deque" -version = "0.6.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -265,18 +241,26 @@ dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-queue" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-utils" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -284,7 +268,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -295,7 +279,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "either" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -305,7 +289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "encoding_rs" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -319,7 +303,7 @@ dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -328,7 +312,7 @@ name = "failure" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -339,7 +323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -349,7 +333,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -359,7 +343,7 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -424,12 +408,12 @@ dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -442,7 +426,7 @@ dependencies = [ [[package]] name = "http" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -465,26 +449,27 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.24" +version = "0.12.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -512,9 +497,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -537,7 +522,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -562,7 +547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazy_static" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -572,7 +557,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.48" +version = "0.2.49" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -641,8 +626,8 @@ name = "miniz-sys" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -658,9 +643,9 @@ name = "miniz_oxide_c_api" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -674,7 +659,7 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -698,13 +683,13 @@ name = "native-tls" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", - "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", + "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -716,7 +701,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -726,9 +711,9 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -742,20 +727,20 @@ name = "num_cpus" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl" -version = "0.10.16" +version = "0.10.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -765,12 +750,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.40" +version = "0.9.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -796,7 +782,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -809,7 +795,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -892,7 +878,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -904,14 +890,14 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -959,7 +945,7 @@ name = "rand_jitter" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -971,7 +957,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -979,11 +965,11 @@ dependencies = [ [[package]] name = "rand_pcg" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1017,7 +1003,7 @@ dependencies = [ [[package]] name = "regex" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1050,23 +1036,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)", + "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1105,10 +1091,10 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1124,7 +1110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1135,7 +1121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1143,13 +1129,13 @@ name = "self_update" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1170,30 +1156,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_derive" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1203,7 +1189,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1259,12 +1245,12 @@ dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.26" +version = "0.15.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1279,7 +1265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1289,7 +1275,7 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1309,7 +1295,7 @@ version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1329,7 +1315,7 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1339,7 +1325,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1355,7 +1341,7 @@ name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1363,31 +1349,31 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-current-thread" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1405,7 +1391,7 @@ dependencies = [ [[package]] name = "tokio-io" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1415,19 +1401,29 @@ dependencies = [ [[package]] name = "tokio-reactor" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-sync" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1439,18 +1435,17 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1476,23 +1471,23 @@ name = "toml" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "topgrade" -version = "1.7.0" +version = "1.8.0" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1626,7 +1621,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1689,7 +1684,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1712,7 +1707,7 @@ dependencies = [ "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" -"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" @@ -1722,7 +1717,7 @@ dependencies = [ "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" -"checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e" +"checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" @@ -1732,16 +1727,15 @@ dependencies = [ "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" "checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" -"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" -"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" -"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" +"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" +"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" "checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" -"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" +"checksum either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c67353c641dc847124ea1902d69bd753dee9bb3beff9aa3662ecf86c971d1fac" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" -"checksum encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0535f350c60aac0b87ccf28319abc749391e912192255b0c00a2c12c6917bd73" +"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" @@ -1757,10 +1751,10 @@ dependencies = [ "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" "checksum h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddb2b25a33e231484694267af28fec74ac63b5ccf51ee2065a5e313b834d836e" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5" +"checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)" = "fdfa9b401ef6c4229745bb6e9b2529192d07b920eed624cdee2a82348cd550af" +"checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896" "checksum hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" "checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -1769,9 +1763,9 @@ dependencies = [ "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" +"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" +"checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e" "checksum libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "54d1ddf9c52870243c5689d7638d888331c1116aa5b398f3ba1acfa7d8758ca1" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" @@ -1790,9 +1784,9 @@ dependencies = [ "checksum nix 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46f0f3210768d796e8fa79ec70ee6af172dacbe7147f5e69be5240a47778302b" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" -"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" +"checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" +"checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" @@ -1816,12 +1810,12 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" "checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" -"checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" +"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" +"checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" "checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "f205a95638627fc0d21c53901671b06f439dc2830311ff11ecdff34ae2d839a8" @@ -1830,16 +1824,16 @@ dependencies = [ "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" -"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" +"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfab8dda0e7a327c696d893df9ffa19cadc4bd195797997f5223cf5831beaf05" "checksum security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d6696852716b589dff9e886ff83778bb635150168e83afa8ac6b8a78cb82abc" "checksum self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e4997d828329f3bea234b5efd084f0ee07b284a556d64023cc0e3e47cc44d74" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "9f301d728f2b94c9a7691c90f07b0b4e8a4517181d9461be94c04bddeb4bd850" -"checksum serde_derive 1.0.88 (registry+https://github.com/rust-lang/crates.io-index)" = "beed18e6f5175aef3ba670e57c60ef3b1b74d250d962a26604bff4c80e970dd4" -"checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" +"checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560" +"checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c" +"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" "checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2" "checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" @@ -1850,7 +1844,7 @@ dependencies = [ "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" +"checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" @@ -1861,13 +1855,14 @@ dependencies = [ "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c" -"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" +"checksum tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcaabb3cec70485d0df6e9454fe514393ad1c4070dee8915f11041e95630b230" +"checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3" "checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" -"checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" -"checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" +"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" +"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" +"checksum tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf2b9dac2a0509b5cfd1df5aa25eafacb616a42a491a13604d6bbeab4486363" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" -"checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb" +"checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801" "checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" diff --git a/Cargo.toml b/Cargo.toml index 694a254f..50bd5bb2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.7.0" +version = "1.8.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From 328a78f78a51af3de408143e6549eed50199b115 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Sun, 10 Mar 2019 01:25:07 -0800 Subject: [PATCH 129/140] feat(zplug): print separator for zplug step --- src/steps/os/unix.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index e98e7bb4..ae23495a 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -9,6 +9,7 @@ use std::process::Command; pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { let zsh = require("zsh")?; + print_separator("zplug"); env::var("ZPLUG_HOME") .map(PathBuf::from) From 1095f46a8a7fd99fae7445707a41703d9288ae21 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 10 Mar 2019 21:48:49 +0200 Subject: [PATCH 130/140] Remove execute legacy --- src/main.rs | 44 +++++++++++++++++++++++++++++----------- src/steps/git.rs | 19 ++++++----------- src/steps/node.rs | 45 +++++++++++++++-------------------------- src/steps/os/freebsd.rs | 42 +++++++++----------------------------- src/steps/os/macos.rs | 16 +++++---------- src/steps/tmux.rs | 19 +++++------------ src/steps/vim.rs | 36 ++++++++++++--------------------- 7 files changed, 86 insertions(+), 135 deletions(-) diff --git a/src/main.rs b/src/main.rs index a7c6a394..121d0b9a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -243,7 +243,12 @@ fn run() -> Result<(), Error> { } } for repo in git_repos.repositories() { - report.push_result(execute_legacy(|| git.pull(&repo, run_type), config.no_retry())?); + execute( + &mut report, + format!("git: {}", utils::HumanizedPath::from(std::path::Path::new(&repo))), + || git.pull(&repo, run_type), + config.no_retry(), + )?; } #[cfg(unix)] @@ -260,10 +265,12 @@ fn run() -> Result<(), Error> { || unix::run_fisher(&base_dirs, run_type), config.no_retry(), )?; - report.push_result(execute_legacy( + execute( + &mut report, + "tmux", || tmux::run_tpm(&base_dirs, run_type), config.no_retry(), - )?); + )?; } execute( @@ -316,30 +323,38 @@ fn run() -> Result<(), Error> { )?; if config.should_run(Step::Vim) { - report.push_result(execute_legacy( + execute( + &mut report, + "vim", || vim::upgrade_vim(&base_dirs, run_type), config.no_retry(), - )?); - report.push_result(execute_legacy( + )?; + execute( + &mut report, + "Neovim", || vim::upgrade_neovim(&base_dirs, run_type), config.no_retry(), - )?); + )?; } - report.push_result(execute_legacy( + execute( + &mut report, + "NPM", || node::run_npm_upgrade(&base_dirs, run_type), config.no_retry(), - )?); + )?; execute( &mut report, "composer", || generic::run_composer_update(&base_dirs, run_type), config.no_retry(), )?; - report.push_result(execute_legacy( + execute( + &mut report, + "yarn", || node::yarn_global_update(run_type), config.no_retry(), - )?); + )?; #[cfg(not(any( target_os = "freebsd", @@ -402,7 +417,12 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "macos")] { if config.should_run(Step::System) { - report.push_result(execute_legacy(|| macos::upgrade_macos(run_type), config.no_retry())?); + execute( + &mut report, + "App Store", + || macos::upgrade_macos(run_type), + config.no_retry(), + )?; } } diff --git a/src/steps/git.rs b/src/steps/git.rs index 4cc5e3c8..4c066ccc 100644 --- a/src/steps/git.rs +++ b/src/steps/git.rs @@ -55,25 +55,18 @@ impl Git { None } - pub fn pull>(&self, path: P, run_type: RunType) -> Option<(String, bool)> { + pub fn pull>(&self, path: P, run_type: RunType) -> Result<(), Error> { let path = path.as_ref(); print_separator(format!("Pulling {}", HumanizedPath::from(path))); let git = self.git.as_ref().unwrap(); - let success = || -> Result<(), Error> { - run_type - .execute(git) - .args(&["pull", "--rebase", "--autostash"]) - .current_dir(&path) - .check_run()?; - - Ok(()) - }() - .is_ok(); - - Some((format!("git: {}", HumanizedPath::from(path)), success)) + run_type + .execute(git) + .args(&["pull", "--rebase", "--autostash"]) + .current_dir(&path) + .check_run() } } diff --git a/src/steps/node.rs b/src/steps/node.rs index b2f6e702..254edc34 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -1,7 +1,7 @@ -use crate::error::Error; +use crate::error::{Error, ErrorKind}; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; -use crate::utils::{which, PathExt}; +use crate::utils::{require, PathExt}; use directories::BaseDirs; use std::path::PathBuf; use std::process::Command; @@ -29,33 +29,20 @@ impl NPM { } } -#[must_use] -pub fn run_npm_upgrade(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(npm) = which("npm").map(NPM::new) { - if let Ok(npm_root) = npm.root() { - if npm_root.is_descendant_of(base_dirs.home_dir()) { - print_separator("Node Package Manager"); - let success = npm.upgrade(run_type).is_ok(); - return Some(("NPM", success)); - } - } - } - None -} - -#[must_use] -pub fn yarn_global_update(run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(yarn) = which("yarn") { - print_separator("Yarn"); - - let success = || -> Result<(), Error> { - run_type.execute(&yarn).args(&["global", "upgrade", "-s"]).check_run()?; - Ok(()) - }() - .is_ok(); - - return Some(("yarn", success)); +pub fn run_npm_upgrade(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let npm = require("npm").map(NPM::new)?; + let npm_root = npm.root()?; + if !npm_root.is_descendant_of(base_dirs.home_dir()) { + Err(ErrorKind::SkipStep)?; } - None + print_separator("Node Package Manager"); + npm.upgrade(run_type) +} + +pub fn yarn_global_update(run_type: RunType) -> Result<(), Error> { + let yarn = require("yarn")?; + + print_separator("Yarn"); + run_type.execute(&yarn).args(&["global", "upgrade", "-s"]).check_run() } diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 8b7c6e1b..9f390c17 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -5,43 +5,19 @@ use failure::ResultExt; use std::path::PathBuf; use std::process::Command; -#[must_use] -pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { +pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Result<(), Error> { + let sudo = require_option(sudo)?; print_separator("FreeBSD Update"); - - if let Some(sudo) = sudo { - let success = || -> Result<(), Error> { - run_type - .execute(sudo) - .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - Some(("FreeBSD Update", success)) - } else { - print_warning("No sudo or yay detected. Skipping system upgrade"); - None - } + run_type + .execute(sudo) + .args(&["/usr/sbin/freebsd-update", "fetch", "install"]) + .check_run() } -#[must_use] -pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Option<(&'static str, bool)> { +pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Result<(), Error> { + let sudo = require_option(sudo)?; print_separator("FreeBSD Packages"); - - if let Some(sudo) = sudo { - let success = || -> Result<(), Error> { - run_type.execute(sudo).args(&["/usr/sbin/pkg", "upgrade"]).check_run()?; - Ok(()) - }() - .is_ok(); - - Some(("FreeBSD Packages", success)) - } else { - print_warning("No sudo or yay detected. Skipping package upgrade"); - None - } + run_type.execute(sudo).args(&["/usr/sbin/pkg", "upgrade"]).check_run() } pub fn audit_packages(sudo: &Option) -> Result<(), Error> { diff --git a/src/steps/os/macos.rs b/src/steps/os/macos.rs index b8b5dc8f..150e3c2d 100644 --- a/src/steps/os/macos.rs +++ b/src/steps/os/macos.rs @@ -3,17 +3,11 @@ use crate::executor::RunType; use crate::terminal::print_separator; #[must_use] -pub fn upgrade_macos(run_type: RunType) -> Option<(&'static str, bool)> { +pub fn upgrade_macos(run_type: RunType) -> Result<(), Error> { print_separator("App Store"); - let success = || -> Result<(), Error> { - run_type - .execute("softwareupdate") - .args(&["--install", "--all"]) - .check_run()?; - Ok(()) - }() - .is_ok(); - - Some(("App Store", success)) + run_type + .execute("softwareupdate") + .args(&["--install", "--all"]) + .check_run() } diff --git a/src/steps/tmux.rs b/src/steps/tmux.rs index 60dff9b6..b51e432e 100644 --- a/src/steps/tmux.rs +++ b/src/steps/tmux.rs @@ -10,24 +10,15 @@ use std::os::unix::process::CommandExt; use std::path::Path; use std::process::Command; -pub fn run_tpm(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(tpm) = base_dirs +pub fn run_tpm(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let tpm = base_dirs .home_dir() .join(".tmux/plugins/tpm/bin/update_plugins") - .if_exists() - { - print_separator("tmux plugins"); + .require()?; - let success = || -> Result<(), Error> { - run_type.execute(&tpm).arg("all").check_run()?; - Ok(()) - }() - .is_ok(); + print_separator("tmux plugins"); - return Some(("tmux", success)); - } - - None + run_type.execute(&tpm).arg("all").check_run() } fn has_session(tmux: &Path, session_name: &str) -> Result { diff --git a/src/steps/vim.rs b/src/steps/vim.rs index 045541f9..31ac13d0 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -1,7 +1,7 @@ use crate::error::Error; use crate::executor::RunType; use crate::terminal::print_separator; -use crate::utils::{which, PathExt}; +use crate::utils::{require, require_option, PathExt}; use directories::BaseDirs; use std::fs; use std::path::PathBuf; @@ -77,31 +77,21 @@ fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework, ru } #[must_use] -pub fn upgrade_vim(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(vim) = which("vim") { - if let Some(vimrc) = vimrc(&base_dirs) { - if let Some(plugin_framework) = PluginFramework::detect(&vimrc) { - print_separator(&format!("Vim ({:?})", plugin_framework)); - let success = upgrade(&vim, &vimrc, plugin_framework, run_type).is_ok(); - return Some(("vim", success)); - } - } - } +pub fn upgrade_vim(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let vim = require("vim")?; + let vimrc = require_option(vimrc(&base_dirs))?; + let plugin_framework = require_option(PluginFramework::detect(&vimrc))?; - None + print_separator(&format!("Vim ({:?})", plugin_framework)); + upgrade(&vim, &vimrc, plugin_framework, run_type) } #[must_use] -pub fn upgrade_neovim(base_dirs: &BaseDirs, run_type: RunType) -> Option<(&'static str, bool)> { - if let Some(nvim) = which("nvim") { - if let Some(nvimrc) = nvimrc(&base_dirs) { - if let Some(plugin_framework) = PluginFramework::detect(&nvimrc) { - print_separator(&format!("Neovim ({:?})", plugin_framework)); - let success = upgrade(&nvim, &nvimrc, plugin_framework, run_type).is_ok(); - return Some(("Neovim", success)); - } - } - } +pub fn upgrade_neovim(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let nvim = require("nvim")?; + let nvimrc = require_option(nvimrc(&base_dirs))?; + let plugin_framework = require_option(PluginFramework::detect(&nvimrc))?; - None + print_separator(&format!("Neovim ({:?})", plugin_framework)); + upgrade(&nvim, &nvimrc, plugin_framework, run_type) } From 9847e6b08f05091f31b3d63cf9254ab2189a79d0 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 10 Mar 2019 22:01:01 +0200 Subject: [PATCH 131/140] fixup! Remove execute legacy --- src/main.rs | 46 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/src/main.rs b/src/main.rs index 121d0b9a..ab2c48c0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,32 +24,6 @@ use std::io; use std::path::PathBuf; use std::process::exit; -fn execute_legacy<'a, F, M>(func: F, no_retry: bool) -> Result, Error> -where - M: Into>, - F: Fn() -> Option<(M, bool)>, -{ - while let Some((key, success)) = func() { - if success { - return Ok(Some((key, success))); - } - - let interrupted = ctrlc::interrupted(); - if interrupted { - ctrlc::unset_interrupted(); - } - - let should_ask = interrupted || !no_retry; - let should_retry = should_ask && should_retry(interrupted).context(ErrorKind::Retry)?; - - if !should_retry { - return Ok(Some((key, success))); - } - } - - Ok(None) -} - fn execute<'a, F, M>(report: &mut Report<'a>, key: M, func: F, no_retry: bool) -> Result<(), Error> where F: Fn() -> Result<(), Error>, @@ -193,10 +167,12 @@ fn run() -> Result<(), Error> { config.no_retry(), )?; #[cfg(target_os = "freebsd")] - report.push_result(execute_legacy( + execute( + &mut report, + "FreeBSD Packages", || freebsd::upgrade_packages(&sudo, run_type), config.no_retry(), - )?); + )?; #[cfg(unix)] execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?; @@ -391,10 +367,12 @@ fn run() -> Result<(), Error> { if let Some(commands) = config.commands() { for (name, command) in commands { - report.push_result(execute_legacy( - || Some((name, generic::run_custom_command(&name, &command, run_type).is_ok())), + execute( + &mut report, + name, + || generic::run_custom_command(&name, &command, run_type), config.no_retry(), - )?); + )?; } } @@ -429,10 +407,12 @@ fn run() -> Result<(), Error> { #[cfg(target_os = "freebsd")] { if config.should_run(Step::System) { - report.push_result(execute_legacy( + execute( + &mut report, + "FreeBSD Upgrade", || freebsd::upgrade_freebsd(&sudo, run_type), config.no_retry(), - )?); + )?; } } From dac93ae0d1adfa2bfb2fffea764baccda6367140 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Mon, 11 Mar 2019 10:30:44 +0200 Subject: [PATCH 132/140] Upgrade PowerShell modules after its configuration has been pulled --- src/main.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index ab2c48c0..4f75cd9f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -108,18 +108,6 @@ fn run() -> Result<(), Error> { #[cfg(windows)] let should_run_powershell = powershell.profile().is_some() && config.should_run(Step::Powershell); - #[cfg(windows)] - { - if should_run_powershell { - execute( - &mut report, - "Powershell Modules Update", - || powershell.update_modules(run_type), - config.no_retry(), - )?; - } - } - #[cfg(target_os = "linux")] let distribution = linux::Distribution::detect(); @@ -227,6 +215,18 @@ fn run() -> Result<(), Error> { )?; } + #[cfg(windows)] + { + if should_run_powershell { + execute( + &mut report, + "Powershell Modules Update", + || powershell.update_modules(run_type), + config.no_retry(), + )?; + } + } + #[cfg(unix)] { execute( From ffa7ecc10a4da1d0feca841b5317b30c8fe87b05 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Sun, 10 Mar 2019 01:25:07 -0800 Subject: [PATCH 133/140] feat(zplug): print separator for zplug step --- src/steps/os/unix.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index ae23495a..4732281e 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -9,7 +9,6 @@ use std::process::Command; pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { let zsh = require("zsh")?; - print_separator("zplug"); env::var("ZPLUG_HOME") .map(PathBuf::from) @@ -21,6 +20,8 @@ pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) .require()?; + print_separator("zplug"); + let cmd = format!("source {} && zplug update", zshrc.display()); run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() } From 9f211d8ec381d06094b617dc29bc816832a94c83 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 12 Mar 2019 19:17:21 +0200 Subject: [PATCH 134/140] Run brew cask upgrade with -y --- src/steps/os/unix.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 4732281e..b54415d9 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -53,7 +53,7 @@ pub fn run_homebrew(cleanup: bool, run_type: RunType) -> Result<(), Error> { .map(|p| Path::new(p.trim()).exists())?; if cask_upgrade_exists { - run_type.execute(&brew).args(&["cu", "-a"]).check_run()?; + run_type.execute(&brew).args(&["cu", "-ay"]).check_run()?; } else { run_type.execute(&brew).args(&["cask", "upgrade"]).check_run()?; } From 013276a07c23bdd9b383e9eeadc4bf50d5252e65 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 13 Mar 2019 10:42:26 +0200 Subject: [PATCH 135/140] Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7260b7b..a64d9259 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1476,7 +1476,7 @@ dependencies = [ [[package]] name = "topgrade" -version = "1.8.0" +version = "1.9.0" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 50bd5bb2..00b8fc96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "topgrade" description = "Upgrade all the things" license-file = "LICENSE" repository = "https://github.com/r-darwish/topgrade" -version = "1.8.0" +version = "1.9.0" authors = ["Roey Darwish Dror "] exclude = ["doc/screenshot.gif"] edition = "2018" From 41ef443e9dbbb4ff7866010c2f05fc4cc9df221a Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 13 Mar 2019 11:14:41 +0200 Subject: [PATCH 136/140] "cargo clippy" doesn't mean "cargo check" --- ci/script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/script.sh b/ci/script.sh index d25e366f..aec5e257 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -7,6 +7,7 @@ main() { cargo fmt --all -- --check cross clippy --all-targets -- -D warnings cross clippy --all-targets --all-features -- -D warnings + cross check --target $TARGET --release --all-features if [ ! -z $DISABLE_TESTS ]; then cross test From 348d115ba771e83b0c45b84f46753827fc0c521f Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Wed, 13 Mar 2019 11:46:32 +0200 Subject: [PATCH 137/140] Fix FreeBSD --- src/main.rs | 4 ++-- src/steps/os/freebsd.rs | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4f75cd9f..66329ef3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -158,7 +158,7 @@ fn run() -> Result<(), Error> { execute( &mut report, "FreeBSD Packages", - || freebsd::upgrade_packages(&sudo, run_type), + || freebsd::upgrade_packages(sudo.as_ref(), run_type), config.no_retry(), )?; #[cfg(unix)] @@ -410,7 +410,7 @@ fn run() -> Result<(), Error> { execute( &mut report, "FreeBSD Upgrade", - || freebsd::upgrade_freebsd(&sudo, run_type), + || freebsd::upgrade_freebsd(sudo.as_ref(), run_type), config.no_retry(), )?; } diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 9f390c17..1aed91b6 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -1,11 +1,12 @@ use crate::error::{Error, ErrorKind}; use crate::executor::RunType; -use crate::terminal::{print_separator, print_warning}; +use crate::terminal::print_separator; +use crate::utils::require_option; use failure::ResultExt; use std::path::PathBuf; use std::process::Command; -pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Result<(), Error> { +pub fn upgrade_freebsd(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> { let sudo = require_option(sudo)?; print_separator("FreeBSD Update"); run_type @@ -14,7 +15,7 @@ pub fn upgrade_freebsd(sudo: &Option, run_type: RunType) -> Result<(), .check_run() } -pub fn upgrade_packages(sudo: &Option, run_type: RunType) -> Result<(), Error> { +pub fn upgrade_packages(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> { let sudo = require_option(sudo)?; print_separator("FreeBSD Packages"); run_type.execute(sudo).args(&["/usr/sbin/pkg", "upgrade"]).check_run() From f233dc5bafaab416cd02e4e634dd3b697750c84d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 14 Mar 2019 21:38:24 +0200 Subject: [PATCH 138/140] Pull i3 configuration --- src/main.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.rs b/src/main.rs index 66329ef3..5e6c3c1d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -190,6 +190,7 @@ fn run() -> Result<(), Error> { git_repos.insert(base_dirs.home_dir().join(".config/fish")); git_repos.insert(base_dirs.config_dir().join("openbox")); git_repos.insert(base_dirs.config_dir().join("bspwm")); + git_repos.insert(base_dirs.config_dir().join("i3")); } #[cfg(windows)] From cd4f54cc5469c2944e05faa7afb33da30b934a66 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 14 Mar 2019 21:38:55 +0200 Subject: [PATCH 139/140] Update readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9017e354..f6244d96 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ Just run `topgrade`. It will run the following steps: * ~/.config/nvim * ~/.vim * ~/.config/openbox + * ~/.config/bspwm + * ~/.config/i3 * Powershell Profile * Custom defined paths * **Unix**: Run [zplug](https://github.com/zplug/zplug) update From 12123ce6cc46d459847d5f872b4abee30ff2c2fb Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 14 Mar 2019 21:41:16 +0200 Subject: [PATCH 140/140] Upgrade dependencies --- Cargo.lock | 260 +++++++++++++++++++++++++++-------------------------- 1 file changed, 135 insertions(+), 125 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a64d9259..fe515459 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "MacTypes-sys" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -40,7 +40,7 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -57,8 +57,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -68,8 +68,8 @@ name = "backtrace-sys" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -106,7 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -119,7 +119,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -127,18 +127,18 @@ name = "bzip2-sys" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -162,7 +162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -183,7 +183,7 @@ dependencies = [ "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -197,7 +197,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -205,7 +205,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -218,10 +218,10 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -239,7 +239,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -259,7 +259,7 @@ name = "crossbeam-utils" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -268,7 +268,7 @@ name = "directories" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -292,12 +292,12 @@ name = "encoding_rs" version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "env_logger" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -323,7 +323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -332,18 +332,18 @@ name = "filetime" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "flate2" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -401,11 +401,11 @@ dependencies = [ [[package]] name = "h2" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -429,7 +429,7 @@ name = "http" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -452,10 +452,10 @@ name = "hyper" version = "0.12.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -464,7 +464,7 @@ dependencies = [ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -480,14 +480,14 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -495,7 +495,7 @@ name = "hyper-tls" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -522,7 +522,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -557,17 +557,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.49" +version = "0.2.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libflate" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -584,7 +584,7 @@ name = "log" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -607,7 +607,7 @@ name = "mime" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -626,8 +626,8 @@ name = "miniz-sys" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -643,9 +643,9 @@ name = "miniz_oxide_c_api" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -659,7 +659,7 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -684,7 +684,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -700,8 +700,8 @@ name = "net2" version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -711,9 +711,9 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -727,7 +727,7 @@ name = "num_cpus" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -736,10 +736,10 @@ version = "0.10.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -753,8 +753,8 @@ name = "openssl-sys" version = "0.9.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -782,7 +782,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -795,7 +795,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -878,7 +878,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -890,13 +890,13 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -945,19 +945,19 @@ name = "rand_jitter" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_os" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1031,17 +1031,17 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1049,7 +1049,7 @@ dependencies = [ "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1110,7 +1110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1121,7 +1121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1130,15 +1130,15 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-old-types 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "pbr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", - "tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tar 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zip 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1169,7 +1169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1230,27 +1230,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.15.27" +version = "0.15.29" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1265,17 +1265,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tar" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1294,8 +1294,8 @@ name = "tempfile" version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1315,7 +1315,7 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1325,7 +1325,7 @@ name = "termios" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1349,17 +1349,17 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1369,6 +1369,7 @@ dependencies = [ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1394,7 +1395,7 @@ name = "tokio-io" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1414,12 +1415,12 @@ dependencies = [ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-sync" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1431,7 +1432,7 @@ name = "tokio-tcp" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1466,6 +1467,14 @@ dependencies = [ "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tokio-trace-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "toml" version = "0.4.10" @@ -1480,7 +1489,7 @@ version = "1.9.0" dependencies = [ "console 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1489,7 +1498,7 @@ dependencies = [ "self_update 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1515,7 +1524,7 @@ dependencies = [ [[package]] name = "unicase" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1621,7 +1630,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1684,17 +1693,17 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "zip" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libflate 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1714,11 +1723,11 @@ dependencies = [ "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" -"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" +"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" "checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" "checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" -"checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92" -"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" +"checksum cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d" +"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" @@ -1726,7 +1735,7 @@ dependencies = [ "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -"checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" +"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" @@ -1736,11 +1745,11 @@ dependencies = [ "checksum either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c67353c641dc847124ea1902d69bd753dee9bb3beff9aa3662ecf86c971d1fac" "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" "checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" -"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" +"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" -"checksum flate2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2291c165c8e703ee54ef3055ad6188e3d51108e2ded18e9f2476e774fc5ad3d4" +"checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" @@ -1749,7 +1758,7 @@ dependencies = [ "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum h2 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddb2b25a33e231484694267af28fec74ac63b5ccf51ee2065a5e313b834d836e" +"checksum h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "910a5e7be6283a9c91b3982fa5188368c8719cce2a3cf3b86048673bf9d9c36b" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" @@ -1765,8 +1774,8 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e" -"checksum libflate 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "54d1ddf9c52870243c5689d7638d888331c1116aa5b398f3ba1acfa7d8758ca1" +"checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1" +"checksum libflate 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "7346a83e8a2c3958d44d24225d905385dc31fc16e89dffb356c457b278914d20" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" @@ -1809,7 +1818,7 @@ dependencies = [ "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" -"checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" +"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" @@ -1818,7 +1827,7 @@ dependencies = [ "checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" "checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum reqwest 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "f205a95638627fc0d21c53901671b06f439dc2830311ff11ecdff34ae2d839a8" +"checksum reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e542d9f077c126af32536b6aacc75bb7325400eab8cd0743543be5d91660780d" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" @@ -1842,11 +1851,11 @@ dependencies = [ "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" -"checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec" +"checksum structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3d0760c312538987d363c36c42339b55f5ee176ea8808bbe4543d484a291c8d1" +"checksum structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "528aeb7351d042e6ffbc2a6fb76a86f9b622fdf7c25932798e7a82cb03bc94c6" +"checksum syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1825685f977249735d510a242a6727b46efe914bb67e38d30c071b1b72b1d5c2" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2" +"checksum tar 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "c2167ff53da2a661702b3299f71a91b61b1dffef36b4b2884b1f9c67254c0133" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" @@ -1855,20 +1864,21 @@ dependencies = [ "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcaabb3cec70485d0df6e9454fe514393ad1c4070dee8915f11041e95630b230" +"checksum tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "1021bb1f4150435ab8f222eb7ed37c60b2d57037def63ba43085a79f387512d7" "checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3" "checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" "checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" -"checksum tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf2b9dac2a0509b5cfd1df5aa25eafacb616a42a491a13604d6bbeab4486363" +"checksum tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fda385df506bf7546e70872767f71e81640f1f251bdf2fd8eb81a0eaec5fe022" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" "checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801" "checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" +"checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" +"checksum unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41d17211f887da8e4a70a45b9536f26fc5de166b81e2d5d80de4a17fd22553bd" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" @@ -1893,4 +1903,4 @@ dependencies = [ "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -"checksum zip 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00acf1fafb786ff450b6726e5be41ef029142597b47a40ce80f952f1471730a0" +"checksum zip 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1cbbddef6339155bc4fa8e2609040078ff18f3011117b55caa9f0516d544a357"