@@ -116,6 +116,8 @@ struct Target {
116
116
available : bool ,
117
117
url : Option < String > ,
118
118
hash : Option < String > ,
119
+ xz_url : Option < String > ,
120
+ xz_hash : Option < String > ,
119
121
components : Option < Vec < Component > > ,
120
122
extensions : Option < Vec < Component > > ,
121
123
}
@@ -126,6 +128,8 @@ impl Target {
126
128
available : false ,
127
129
url : None ,
128
130
hash : None ,
131
+ xz_url : None ,
132
+ xz_hash : None ,
129
133
components : None ,
130
134
extensions : None ,
131
135
}
@@ -258,6 +262,8 @@ impl Builder {
258
262
continue
259
263
}
260
264
} ;
265
+ let xz_filename = filename. replace ( ".tar.gz" , ".tar.xz" ) ;
266
+ let xz_digest = self . digests . remove ( & xz_filename) ;
261
267
let mut components = Vec :: new ( ) ;
262
268
let mut extensions = Vec :: new ( ) ;
263
269
@@ -301,6 +307,8 @@ impl Builder {
301
307
available : true ,
302
308
url : Some ( self . url ( & filename) ) ,
303
309
hash : Some ( digest) ,
310
+ xz_url : xz_digest. as_ref ( ) . map ( |_| self . url ( & xz_filename) ) ,
311
+ xz_hash : xz_digest,
304
312
components : Some ( components) ,
305
313
extensions : Some ( extensions) ,
306
314
} ) ;
@@ -320,11 +328,15 @@ impl Builder {
320
328
Some ( digest) => digest,
321
329
None => return ( name. to_string ( ) , Target :: unavailable ( ) ) ,
322
330
} ;
331
+ let xz_filename = filename. replace ( ".tar.gz" , ".tar.xz" ) ;
332
+ let xz_digest = self . digests . remove ( & xz_filename) ;
323
333
324
334
( name. to_string ( ) , Target {
325
335
available : true ,
326
336
url : Some ( self . url ( & filename) ) ,
327
337
hash : Some ( digest) ,
338
+ xz_url : xz_digest. as_ref ( ) . map ( |_| self . url ( & xz_filename) ) ,
339
+ xz_hash : xz_digest,
328
340
components : None ,
329
341
extensions : None ,
330
342
} )
0 commit comments