diff --git a/Cargo.toml b/Cargo.toml index 5dc3e01a4..6a37ad3e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ serde_ignored = "0.0.4" serde_json = "1.0" shell-escape = "0.1" tar = { version = "0.4", default-features = false } -tempdir = "0.3" +tempfile = "3.0" termcolor = "0.3" toml = "0.4" url = "1.1" diff --git a/src/cargo/lib.rs b/src/cargo/lib.rs index e2857645f..07b2cd408 100644 --- a/src/cargo/lib.rs +++ b/src/cargo/lib.rs @@ -40,7 +40,7 @@ extern crate serde_ignored; extern crate serde_json; extern crate shell_escape; extern crate tar; -extern crate tempdir; +extern crate tempfile; extern crate termcolor; extern crate toml; extern crate url; diff --git a/src/cargo/ops/cargo_install.rs b/src/cargo/ops/cargo_install.rs index 09c9d75d0..10449b95e 100644 --- a/src/cargo/ops/cargo_install.rs +++ b/src/cargo/ops/cargo_install.rs @@ -7,7 +7,7 @@ use std::path::{Path, PathBuf}; use std::sync::Arc; use semver::{Version, VersionReq}; -use tempdir::TempDir; +use tempfile::Builder as TempFileBuilder; use toml; use core::{Dependency, Package, PackageIdSpec, Source, SourceId}; @@ -210,7 +210,7 @@ fn install_one( None } else if let Some(dir) = config.target_dir()? { Some(dir) - } else if let Ok(td) = TempDir::new("cargo-install") { + } else if let Ok(td) = TempFileBuilder::new().prefix("cargo-install").tempdir() { let p = td.path().to_owned(); td_opt = Some(td); Some(Filesystem::new(p)) @@ -284,7 +284,9 @@ fn install_one( // Copy all binaries to a temporary directory under `dst` first, catching // some failure modes (e.g. out of space) before touching the existing // binaries. This directory will get cleaned up via RAII. - let staging_dir = TempDir::new_in(&dst, "cargo-install")?; + let staging_dir = TempFileBuilder::new() + .prefix("cargo-install") + .tempdir_in(&dst)?; for &(bin, src) in binaries.iter() { let dst = staging_dir.path().join(bin); // Try to move if `target_dir` is transient. diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index 143cbdc6d..7cc6b6ffd 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -11,7 +11,7 @@ use cargotest::support::{basic_bin_manifest, execs, main_file, project}; use cargotest::support::registry::Package; use cargotest::ChannelChanger; use hamcrest::{assert_that, existing_dir, existing_file, is_not}; -use tempdir::TempDir; +use tempfile; #[test] fn cargo_compile_simple() { @@ -546,7 +546,7 @@ Caused by: #[test] fn cargo_compile_without_manifest() { - let tmpdir = TempDir::new("cargo").unwrap(); + let tmpdir = tempfile::Builder::new().prefix("cargo").tempdir().unwrap(); let p = ProjectBuilder::new("foo", tmpdir.path().to_path_buf()).build(); assert_that( diff --git a/tests/testsuite/init.rs b/tests/testsuite/init.rs index 2db179f72..667bc6202 100644 --- a/tests/testsuite/init.rs +++ b/tests/testsuite/init.rs @@ -6,7 +6,7 @@ use std::env; use cargo::util::ProcessBuilder; use cargotest::support::{cargo_exe, execs, paths}; use hamcrest::{assert_that, existing_dir, existing_file, is_not}; -use tempdir::TempDir; +use tempfile; fn cargo_process(s: &str) -> ProcessBuilder { let mut p = cargotest::process(&cargo_exe()); @@ -62,7 +62,7 @@ fn simple_bin() { #[test] fn both_lib_and_bin() { - let td = TempDir::new("cargo").unwrap(); + let td = tempfile::Builder::new().prefix("cargo").tempdir().unwrap(); assert_that( cargo_process("init") .arg("--lib") @@ -328,7 +328,7 @@ fn simple_git() { #[test] fn auto_git() { - let td = TempDir::new("cargo").unwrap(); + let td = tempfile::Builder::new().prefix("cargo").tempdir().unwrap(); let foo = &td.path().join("foo"); fs::create_dir_all(&foo).unwrap(); assert_that( diff --git a/tests/testsuite/main.rs b/tests/testsuite/main.rs index bd7c32b9a..dcd3d40bf 100644 --- a/tests/testsuite/main.rs +++ b/tests/testsuite/main.rs @@ -13,7 +13,7 @@ extern crate serde_derive; #[macro_use] extern crate serde_json; extern crate tar; -extern crate tempdir; +extern crate tempfile; extern crate toml; extern crate url; #[cfg(windows)] diff --git a/tests/testsuite/new.rs b/tests/testsuite/new.rs index 64057a058..e5522f72d 100644 --- a/tests/testsuite/new.rs +++ b/tests/testsuite/new.rs @@ -7,7 +7,7 @@ use cargo::util::ProcessBuilder; use cargotest::process; use cargotest::support::{execs, paths}; use hamcrest::{assert_that, existing_dir, existing_file, is_not}; -use tempdir::TempDir; +use tempfile; fn cargo_process(s: &str) -> ProcessBuilder { let mut p = cargotest::cargo_process(); @@ -113,7 +113,7 @@ fn simple_git() { // Run inside a temp directory so that cargo will initialize a git repo. // If this ran inside paths::root() it would detect that we are already // inside a git repo and skip the initialization. - let td = TempDir::new("cargo").unwrap(); + let td = tempfile::Builder::new().prefix("cargo").tempdir().unwrap(); assert_that( cargo_process("new") .arg("--lib")