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

Function normalize_compute_driver_socket_args

crates/openshell-server/src/cli.rs:684–724  ·  view source on GitHub ↗
(args: &mut RunArgs, matches: &ArgMatches)

Source from the content-addressed store, hash-verified

682}
683
684fn normalize_compute_driver_socket_args(args: &mut RunArgs, matches: &ArgMatches) -> Result<()> {
685 let Some(socket) = args.compute_driver_socket.as_ref() else {
686 return Ok(());
687 };
688 if socket.as_os_str().is_empty() {
689 return Err(miette::miette!(
690 "--compute-driver-socket must not be an empty path"
691 ));
692 }
693 if arg_defaulted(matches, "drivers") {
694 return Err(miette::miette!(
695 "--compute-driver-socket requires --drivers <name> or OPENSHELL_DRIVERS=<name> to select a non-reserved compute driver name"
696 ));
697 }
698
699 match args.drivers.as_slice() {
700 [driver] => {
701 let driver = openshell_core::config::normalize_compute_driver_name(driver)
702 .map_err(|err| miette::miette!("{err}"))?;
703 if matches!(
704 driver.parse::<ComputeDriverKind>().ok(),
705 Some(
706 ComputeDriverKind::Docker
707 | ComputeDriverKind::Podman
708 | ComputeDriverKind::Kubernetes
709 | ComputeDriverKind::Vm
710 )
711 ) {
712 return Err(miette::miette!(
713 "--compute-driver-socket cannot be combined with reserved built-in compute driver '{driver}'"
714 ));
715 }
716 args.drivers[0] = driver;
717 Ok(())
718 }
719 drivers => Err(miette::miette!(
720 "--compute-driver-socket requires exactly one compute driver name, got: {}",
721 drivers.join(",")
722 )),
723 }
724}
725
726fn effective_single_driver(args: &RunArgs) -> Option<ComputeDriverKind> {
727 match args.drivers.as_slice() {

Calls 4

arg_defaultedFunction · 0.85
as_sliceMethod · 0.80
is_emptyMethod · 0.45