Skip to content

Commit e6c795c

Browse files
committed
Document archives for platforms with installers
1 parent d5fd22e commit e6c795c

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
@@ -230,28 +230,28 @@ impl Blacksmith {
230230
writeln!(buffer, "---------|--------|------|--------").unwrap();
231231

232232
for (name, platform) in &self.platforms {
233-
let extension = if name.contains("windows") {
234-
"msi"
233+
let extensions: &[&str] = if name.contains("windows") {
234+
&["msi", "tar.xz"]
235235
} else if name.contains("darwin") {
236-
"pkg"
236+
&["pkg", "tar.xz"]
237237
} else {
238-
"tar.xz"
238+
&["tar.xz"]
239239
};
240240

241241
let stable_links = platform
242242
.stable
243243
.as_ref()
244-
.map(|version| generate_standalone_links("rust", version, name, extension))
244+
.map(|version| generate_standalone_links("rust", version, name, extensions))
245245
.unwrap_or_else(String::new);
246246

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

253253
let nightly_links = if platform.nightly {
254-
generate_standalone_links("rust", "nightly", name, extension)
254+
generate_standalone_links("rust", "nightly", name, extensions)
255255
} else {
256256
String::new()
257257
};
@@ -283,16 +283,16 @@ impl Blacksmith {
283283
writeln!(buffer, "---------|--------").unwrap();
284284

285285
for name in platforms {
286-
let extension = if name.contains("windows") {
287-
"msi"
286+
let extensions: &[&str] = if name.contains("windows") {
287+
&["msi", "tar.gz"]
288288
} else if name.contains("darwin") {
289-
"pkg"
289+
&["pkg", "tar.gz"]
290290
} else {
291-
"tar.gz"
291+
&["tar.gz"]
292292
};
293293

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

297297
writeln!(
298298
buffer,
@@ -324,15 +324,15 @@ impl Blacksmith {
324324
buffer,
325325
"stable ({}) | {}",
326326
stable_version,
327-
generate_standalone_links("rustc", stable_version, "src", "tar.xz")
327+
generate_standalone_links("rustc", stable_version, "src", &["tar.xz"])
328328
)
329329
.unwrap();
330330
} else {
331331
writeln!(
332332
buffer,
333333
"{} | {}",
334334
channel,
335-
generate_standalone_links("rustc", &channel, "src", "tar.xz")
335+
generate_standalone_links("rustc", &channel, "src", &["tar.xz"])
336336
)
337337
.unwrap();
338338
}
@@ -344,20 +344,27 @@ impl Blacksmith {
344344

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

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

0 commit comments

Comments
 (0)