@@ -230,28 +230,28 @@ impl Blacksmith {
230
230
writeln ! ( buffer, "---------|--------|------|--------" ) . unwrap ( ) ;
231
231
232
232
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" ]
235
235
} else if name. contains ( "darwin" ) {
236
- "pkg"
236
+ & [ "pkg" , "tar.xz" ]
237
237
} else {
238
- "tar.xz"
238
+ & [ "tar.xz" ]
239
239
} ;
240
240
241
241
let stable_links = platform
242
242
. stable
243
243
. as_ref ( )
244
- . map ( |version| generate_standalone_links ( "rust" , version, name, extension ) )
244
+ . map ( |version| generate_standalone_links ( "rust" , version, name, extensions ) )
245
245
. unwrap_or_else ( String :: new) ;
246
246
247
247
let beta_links = if platform. beta {
248
- generate_standalone_links ( "rust" , "beta" , name, extension )
248
+ generate_standalone_links ( "rust" , "beta" , name, extensions )
249
249
} else {
250
250
String :: new ( )
251
251
} ;
252
252
253
253
let nightly_links = if platform. nightly {
254
- generate_standalone_links ( "rust" , "nightly" , name, extension )
254
+ generate_standalone_links ( "rust" , "nightly" , name, extensions )
255
255
} else {
256
256
String :: new ( )
257
257
} ;
@@ -283,16 +283,16 @@ impl Blacksmith {
283
283
writeln ! ( buffer, "---------|--------" ) . unwrap ( ) ;
284
284
285
285
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" ]
288
288
} else if name. contains ( "darwin" ) {
289
- "pkg"
289
+ & [ "pkg" , "tar.gz" ]
290
290
} else {
291
- "tar.gz"
291
+ & [ "tar.gz" ]
292
292
} ;
293
293
294
294
let stable_links =
295
- generate_standalone_links ( "rust" , stable_version, name, extension ) ;
295
+ generate_standalone_links ( "rust" , stable_version, name, extensions ) ;
296
296
297
297
writeln ! (
298
298
buffer,
@@ -324,15 +324,15 @@ impl Blacksmith {
324
324
buffer,
325
325
"stable ({}) | {}" ,
326
326
stable_version,
327
- generate_standalone_links( "rustc" , stable_version, "src" , "tar.xz" )
327
+ generate_standalone_links( "rustc" , stable_version, "src" , & [ "tar.xz" ] )
328
328
)
329
329
. unwrap ( ) ;
330
330
} else {
331
331
writeln ! (
332
332
buffer,
333
333
"{} | {}" ,
334
334
channel,
335
- generate_standalone_links( "rustc" , & channel, "src" , "tar.xz" )
335
+ generate_standalone_links( "rustc" , & channel, "src" , & [ "tar.xz" ] )
336
336
)
337
337
. unwrap ( ) ;
338
338
}
@@ -344,20 +344,27 @@ impl Blacksmith {
344
344
345
345
/// Generates links to standalone installers provided a rust version or channel,
346
346
/// 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
361
368
}
362
369
363
370
fn unix_time ( ) -> Option < u64 > {
0 commit comments