Untar into the right dir when verifying
authorSteven Fackler <sfackler@palantir.com>
Thu, 21 Dec 2017 21:58:49 +0000 (13:58 -0800)
committerSteven Fackler <sfackler@palantir.com>
Thu, 21 Dec 2017 22:00:54 +0000 (14:00 -0800)
We'd previously dump it in the package's directory which is wrong when
working in a workspace.

Closes #4304

src/cargo/ops/cargo_package.rs

index c09d786ff7a454ea5c71d3aac37910c8a835a624..84a20c6414d231aa801f9273fc7b2379e1c97ece 100644 (file)
@@ -82,7 +82,7 @@ pub fn package(ws: &Workspace,
     })?;
     if opts.verify {
         dst.seek(SeekFrom::Start(0))?;
-        run_verify(ws, dst.file(), opts).chain_err(|| {
+        run_verify(ws, &dst, opts).chain_err(|| {
             "failed to verify package tarball"
         })?
     }
@@ -276,15 +276,14 @@ fn tar(ws: &Workspace,
     Ok(())
 }
 
-fn run_verify(ws: &Workspace, tar: &File, opts: &PackageOpts) -> CargoResult<()> {
+fn run_verify(ws: &Workspace, tar: &FileLock, opts: &PackageOpts) -> CargoResult<()> {
     let config = ws.config();
     let pkg = ws.current()?;
 
     config.shell().status("Verifying", pkg)?;
 
-    let f = GzDecoder::new(tar)?;
-    let dst = pkg.root().join(&format!("target/package/{}-{}",
-                                       pkg.name(), pkg.version()));
+    let f = GzDecoder::new(tar.file())?;
+    let dst = tar.parent().join(&format!("{}-{}", pkg.name(), pkg.version()));
     if fs::metadata(&dst).is_ok() {
         fs::remove_dir_all(&dst)?;
     }