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