MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / handle_platform_progress_event

Function handle_platform_progress_event

crates/openshell-cli/src/run.rs:415–476  ·  view source on GitHub ↗
(
    event: &PlatformEvent,
    display: &mut Option<ProvisioningDisplay>,
    provision_start: Instant,
)

Source from the content-addressed store, hash-verified

413}
414
415fn handle_platform_progress_event(
416 event: &PlatformEvent,
417 display: &mut Option<ProvisioningDisplay>,
418 provision_start: Instant,
419) -> bool {
420 let completed_step = event
421 .metadata
422 .get(PROGRESS_COMPLETE_STEP_KEY)
423 .and_then(|step| progress_step_from_metadata(step));
424 let active_step = event
425 .metadata
426 .get(PROGRESS_ACTIVE_STEP_KEY)
427 .and_then(|step| progress_step_from_metadata(step));
428 let active_detail = event
429 .metadata
430 .get(PROGRESS_ACTIVE_DETAIL_KEY)
431 .filter(|detail| !detail.is_empty());
432
433 let handled = completed_step.is_some() || active_step.is_some() || active_detail.is_some();
434 if !handled {
435 return false;
436 }
437
438 if let Some(step) = completed_step {
439 let label = event
440 .metadata
441 .get(PROGRESS_COMPLETE_LABEL_KEY)
442 .map_or_else(|| step.completed_label(), String::as_str);
443 if let Some(d) = display.as_mut() {
444 d.complete_step_with_label(step, label);
445 } else {
446 let ts = format_timestamp(provision_start.elapsed());
447 println!("{} {}", ts.dimmed(), label);
448 }
449 }
450
451 if let Some(step) = active_step
452 && let Some(d) = display.as_mut()
453 {
454 d.set_active_step(step);
455 }
456
457 if let Some(detail) = active_detail {
458 if let Some(d) = display.as_mut() {
459 d.set_active_detail(detail);
460 } else {
461 let ts = format_timestamp(provision_start.elapsed());
462 if let Some(step) = active_step {
463 println!(
464 "{} {} {}",
465 ts.dimmed(),
466 noninteractive_active_label(step),
467 detail
468 );
469 } else {
470 println!("{} {}", ts.dimmed(), detail);
471 }
472 }

Callers 1

sandbox_createFunction · 0.85

Calls 8

completed_labelMethod · 0.80
set_active_stepMethod · 0.80
set_active_detailMethod · 0.80
format_timestampFunction · 0.70
getMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected