@@ -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
365372fn unix_time ( ) -> Option < u64 > {
0 commit comments