audb_core/features/device/
select.rs

1use crate::features::config::{device_store::DeviceStore, state::DeviceState};
2use crate::tools::types::DeviceIdentifier;
3use anyhow::{anyhow, Result};
4
5pub async fn execute(identifier: &str) -> Result<()> {
6    let device_id = DeviceIdentifier::parse(identifier);
7    let device = DeviceStore::find(&device_id)?;
8
9    if !device.enabled {
10        return Err(anyhow!("Device is disabled. Cannot select disabled devices."));
11    }
12
13    DeviceState::set_current(&device.host)?;
14
15    println!("\x1b[1m\x1b[32msuccess\x1b[0m: Selected device: {}", device.display_name());
16    println!("  Host: {}", device.host);
17    println!("  Port: {}", device.port);
18    println!("  Platform: {}", device.platform);
19
20    Ok(())
21}