@@ -303,11 +303,17 @@ enum BuildSubcommand {
303
303
304
304
impl BuildSubcommand {
305
305
pub fn handle_args ( self , ctx : BinContext , mut docbuilder : DocBuilder ) -> Result < ( ) , Error > {
306
+ let rustwide_builder = || -> Result < RustwideBuilder , Error > {
307
+ Ok ( RustwideBuilder :: init (
308
+ ctx. pool ( ) ?,
309
+ ctx. metrics ( ) ?,
310
+ ctx. storage ( ) ?,
311
+ ) ?)
312
+ } ;
313
+
306
314
match self {
307
315
Self :: World => {
308
- let mut builder =
309
- RustwideBuilder :: init ( ctx. pool ( ) ?, ctx. metrics ( ) ?, ctx. storage ( ) ?) ?;
310
- builder
316
+ rustwide_builder ( ) ?
311
317
. build_world ( & mut docbuilder)
312
318
. context ( "Failed to build world" ) ?;
313
319
}
@@ -317,9 +323,7 @@ impl BuildSubcommand {
317
323
crate_version,
318
324
local,
319
325
} => {
320
- let mut builder =
321
- RustwideBuilder :: init ( ctx. pool ( ) ?, ctx. metrics ( ) ?, ctx. storage ( ) ?)
322
- . context ( "failed to initialize rustwide" ) ?;
326
+ let mut builder = rustwide_builder ( ) ?;
323
327
324
328
if let Some ( path) = local {
325
329
builder
@@ -353,17 +357,13 @@ impl BuildSubcommand {
353
357
}
354
358
}
355
359
356
- let mut builder =
357
- RustwideBuilder :: init ( ctx. pool ( ) ?, ctx. metrics ( ) ?, ctx. storage ( ) ?) ?;
358
- builder
360
+ rustwide_builder ( ) ?
359
361
. update_toolchain ( )
360
362
. context ( "failed to update toolchain" ) ?;
361
363
}
362
364
363
365
Self :: AddEssentialFiles => {
364
- let mut builder =
365
- RustwideBuilder :: init ( ctx. pool ( ) ?, ctx. metrics ( ) ?, ctx. storage ( ) ?) ?;
366
- builder
366
+ rustwide_builder ( ) ?
367
367
. add_essential_files ( )
368
368
. context ( "failed to add essential files" ) ?;
369
369
}
0 commit comments