Skip to content

Commit cfd431b

Browse files
authored
Merge pull request #754 from ChrisDenton/archive
Document `.tar.xz` archives for platforms with installers
2 parents 5017f18 + e6c795c commit cfd431b

File tree

1 file changed

+35
-28
lines changed

1 file changed

+35
-28
lines changed

blacksmith/src/lib.rs

+35-28
Original file line numberDiff line numberDiff line change
@@ -232,28 +232,28 @@ impl Blacksmith {
232232
writeln!(buffer, "---------|--------|------|--------").unwrap();
233233

234234
for (name, platform) in &self.platforms {
235-
let extension = if name.contains("windows") {
236-
"msi"
235+
let extensions: &[&str] = if name.contains("windows") {
236+
&["msi", "tar.xz"]
237237
} else if name.contains("darwin") {
238-
"pkg"
238+
&["pkg", "tar.xz"]
239239
} else {
240-
"tar.xz"
240+
&["tar.xz"]
241241
};
242242

243243
let stable_links = platform
244244
.stable
245245
.as_ref()
246-
.map(|version| generate_standalone_links("rust", version, name, extension))
246+
.map(|version| generate_standalone_links("rust", version, name, extensions))
247247
.unwrap_or_else(String::new);
248248

249249
let beta_links = if platform.beta {
250-
generate_standalone_links("rust", "beta", name, extension)
250+
generate_standalone_links("rust", "beta", name, extensions)
251251
} else {
252252
String::new()
253253
};
254254

255255
let nightly_links = if platform.nightly {
256-
generate_standalone_links("rust", "nightly", name, extension)
256+
generate_standalone_links("rust", "nightly", name, extensions)
257257
} else {
258258
String::new()
259259
};
@@ -285,16 +285,16 @@ impl Blacksmith {
285285
writeln!(buffer, "---------|--------").unwrap();
286286

287287
for name in platforms {
288-
let extension = if name.contains("windows") {
289-
"msi"
288+
let extensions: &[&str] = if name.contains("windows") {
289+
&["msi", "tar.gz"]
290290
} else if name.contains("darwin") {
291-
"pkg"
291+
&["pkg", "tar.gz"]
292292
} else {
293-
"tar.gz"
293+
&["tar.gz"]
294294
};
295295

296296
let stable_links =
297-
generate_standalone_links("rust", stable_version, name, extension);
297+
generate_standalone_links("rust", stable_version, name, extensions);
298298

299299
writeln!(
300300
buffer,
@@ -326,15 +326,15 @@ impl Blacksmith {
326326
buffer,
327327
"stable ({}) | {}",
328328
stable_version,
329-
generate_standalone_links("rustc", stable_version, "src", "tar.xz")
329+
generate_standalone_links("rustc", stable_version, "src", &["tar.xz"])
330330
)
331331
.unwrap();
332332
} else {
333333
writeln!(
334334
buffer,
335335
"{} | {}",
336336
channel,
337-
generate_standalone_links("rustc", &channel, "src", "tar.xz")
337+
generate_standalone_links("rustc", &channel, "src", &["tar.xz"])
338338
)
339339
.unwrap();
340340
}
@@ -346,20 +346,27 @@ impl Blacksmith {
346346

347347
/// Generates links to standalone installers provided a rust version or channel,
348348
/// target name, and file extension.
349-
fn generate_standalone_links(base: &str, stem: &str, name: &str, extension: &str) -> String {
350-
let url = format!(
351-
"https://static.rust-lang.org/dist/{base}-{stem}-{name}.{extension}",
352-
extension = extension,
353-
name = name,
354-
stem = stem,
355-
base = base,
356-
);
357-
358-
format!(
359-
"[{extension}]({url}) <br> [{extension}.asc]({url}.asc)",
360-
extension = extension,
361-
url = url,
362-
)
349+
fn generate_standalone_links(base: &str, stem: &str, name: &str, extensions: &[&str]) -> String {
350+
let mut result = String::new();
351+
for extension in extensions {
352+
if !result.is_empty() {
353+
result.push_str(" <br> ");
354+
}
355+
let url = format!(
356+
"https://static.rust-lang.org/dist/{base}-{stem}-{name}.{extension}",
357+
extension = extension,
358+
name = name,
359+
stem = stem,
360+
base = base,
361+
);
362+
363+
result.push_str(&format!(
364+
"[{extension}]({url}) <br> [{extension}.asc]({url}.asc)",
365+
extension = extension,
366+
url = url,
367+
));
368+
}
369+
result
363370
}
364371

365372
fn unix_time() -> Option<u64> {

0 commit comments

Comments
 (0)