From d7e134d333a2393a73eeff0b546935a6601119e9 Mon Sep 17 00:00:00 2001 From: Jackson Coxson Date: Wed, 9 Jul 2025 20:29:55 -0600 Subject: [PATCH] Prefer USB devices first --- tools/src/common.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tools/src/common.rs b/tools/src/common.rs index 921e810..ed9ecfd 100644 --- a/tools/src/common.rs +++ b/tools/src/common.rs @@ -9,7 +9,7 @@ use std::{ use idevice::{ pairing_file::PairingFile, provider::{IdeviceProvider, TcpProvider}, - usbmuxd::{UsbmuxdAddr, UsbmuxdConnection}, + usbmuxd::{Connection, UsbmuxdAddr, UsbmuxdConnection, UsbmuxdDevice}, }; pub async fn get_provider( @@ -77,10 +77,21 @@ pub async fn get_provider( return Err(format!("Unable to get devices from usbmuxd: {e:?}")); } }; + let usb_devs: Vec<&UsbmuxdDevice> = devs + .iter() + .filter(|x| x.connection_type == Connection::Usb) + .collect(); + if devs.is_empty() { return Err("No devices connected!".to_string()); } - Box::new(devs[0].to_provider(UsbmuxdAddr::from_env_var().unwrap(), label)) + + let chosen_dev = if !usb_devs.is_empty() { + usb_devs[0] + } else { + &devs[0] + }; + Box::new(chosen_dev.to_provider(UsbmuxdAddr::from_env_var().unwrap(), label)) }; Ok(provider) }