diff options
| author | Corey Farwell <coreyf@rwell.org> | 2017-05-03 18:34:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-03 18:34:00 -0400 |
| commit | 10fde3393be6295c8df2ce6c016f3f37b25b58b7 (patch) | |
| tree | 591e9b8aa406456f8c85dd69f2a3de384fc6b5a2 /src | |
| parent | 9f06dfb4515b096b65980f7f93e53b70a1c583b3 (diff) | |
| parent | 98dd82c013b04af19eeb802562c1cf99c52010c5 (diff) | |
| download | rust-10fde3393be6295c8df2ce6c016f3f37b25b58b7.tar.gz rust-10fde3393be6295c8df2ce6c016f3f37b25b58b7.zip | |
Rollup merge of #41600 - ranma42:xz-dist, r=alexcrichton
Generate XZ-compressed tarballs Integrate the new `rust-installer` and extend manifests with keys for xz-compressed tarballs. One of the steps required for https://github.com/rust-lang/rust/issues/21724
Diffstat (limited to 'src')
| m--------- | src/rust-installer | 0 | ||||
| -rw-r--r-- | src/tools/build-manifest/src/main.rs | 50 |
2 files changed, 30 insertions, 20 deletions
diff --git a/src/rust-installer b/src/rust-installer -Subproject 4f994850808a572e2cc8d43f968893c8e942e9b +Subproject 4cf7397fb0566e745f0bce4c5b009cfeb5d12c5 diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index a8cb30da435..ba37863b1f6 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -116,10 +116,26 @@ struct Target { available: bool, url: Option<String>, hash: Option<String>, + xz_url: Option<String>, + xz_hash: Option<String>, components: Option<Vec<Component>>, extensions: Option<Vec<Component>>, } +impl Target { + fn unavailable() -> Target { + Target { + available: false, + url: None, + hash: None, + xz_url: None, + xz_hash: None, + components: None, + extensions: None, + } + } +} + #[derive(RustcEncodable)] struct Component { pkg: String, @@ -242,16 +258,12 @@ impl Builder { let digest = match self.digests.remove(&filename) { Some(digest) => digest, None => { - pkg.target.insert(host.to_string(), Target { - available: false, - url: None, - hash: None, - components: None, - extensions: None, - }); + pkg.target.insert(host.to_string(), Target::unavailable()); continue } }; + let xz_filename = filename.replace(".tar.gz", ".tar.xz"); + let xz_digest = self.digests.remove(&xz_filename); let mut components = Vec::new(); let mut extensions = Vec::new(); @@ -293,8 +305,10 @@ impl Builder { pkg.target.insert(host.to_string(), Target { available: true, - url: Some(self.url("rust", host)), + url: Some(self.url(&filename)), hash: Some(digest), + xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)), + xz_hash: xz_digest, components: Some(components), extensions: Some(extensions), }); @@ -312,21 +326,17 @@ impl Builder { let filename = self.filename(pkgname, name); let digest = match self.digests.remove(&filename) { Some(digest) => digest, - None => { - return (name.to_string(), Target { - available: false, - url: None, - hash: None, - components: None, - extensions: None, - }) - } + None => return (name.to_string(), Target::unavailable()), }; + let xz_filename = filename.replace(".tar.gz", ".tar.xz"); + let xz_digest = self.digests.remove(&xz_filename); (name.to_string(), Target { available: true, - url: Some(self.url(pkgname, name)), + url: Some(self.url(&filename)), hash: Some(digest), + xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)), + xz_hash: xz_digest, components: None, extensions: None, }) @@ -338,11 +348,11 @@ impl Builder { }); } - fn url(&self, component: &str, target: &str) -> String { + fn url(&self, filename: &str) -> String { format!("{}/{}/{}", self.s3_address, self.date, - self.filename(component, target)) + filename) } fn filename(&self, component: &str, target: &str) -> String { |
