Skip to content

Commit 58abfbd

Browse files
authored
Fix manual download when no nuget (#34)
1 parent ad331cc commit 58abfbd

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

xtask/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ quick-xml = { version = "0.38", features = ["serialize"] }
99
clap = { version = "4.0", features = ["derive"] }
1010
cargo_metadata = "0.20"
1111
reqwest = { version = "0.12", features = ["blocking"] }
12-
tempfile = "3.19"
1312
zip = "4.0"
1413
serde = { version = "1.0", features = ["derive"] }
1514
serde_json = "1.0"

xtask/src/nuget.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
use anyhow::Result;
22
use reqwest::blocking::get;
33
use std::fs;
4+
use std::io;
5+
use std::io::Seek;
46
use std::path::Path;
57
use std::path::PathBuf;
68
use std::process::Command;
79
use std::process::ExitStatus;
8-
use tempfile::NamedTempFile;
910
use zip::ZipArchive;
1011

1112
#[allow(dead_code)]
@@ -91,15 +92,18 @@ fn download_and_extract(
9192
format!("https://www.nuget.org/api/v2/package/{package_name}/{package_version}");
9293
println!("Downloading NuGet package from: {package_url}");
9394

94-
let mut response = get(&package_url)?.error_for_status()?;
95-
96-
let mut temp_file = NamedTempFile::new()?;
97-
response.copy_to(&mut temp_file)?;
98-
99-
let zip_file = fs::File::open(temp_file.path())?;
100-
let mut archive = ZipArchive::new(zip_file)?;
95+
let mut response = get(&package_url)?;
96+
fs::create_dir_all(package_output)?;
97+
let mut nuget_pkg_file = fs::OpenOptions::new()
98+
.create(true)
99+
.write(true)
100+
.read(true)
101+
.truncate(true)
102+
.open(package_output.join(format!("{package_name}.{package_version}.nupkg")))?;
103+
response.copy_to(&mut nuget_pkg_file)?;
104+
nuget_pkg_file.seek(io::SeekFrom::Start(0))?;
105+
let mut archive = ZipArchive::new(nuget_pkg_file)?;
101106
println!("Extracting NuGet package to: {package_output:?}");
102107
archive.extract(package_output)?;
103-
104108
Ok(())
105109
}

0 commit comments

Comments
 (0)