use console::Style; use std::io::{self, Write}; pub fn choose_package_mirror() -> Option { let mirrors = vec![ "https://ftp.fau.de", "https://mirror.kernel.org/linux", "https://mirror.example.org/linux", ]; println!("Optional: choose a mirror for source packages:"); for (i, mirror) in mirrors.iter().enumerate() { println!(" [{}] {}", i + 1, mirror); } print!("Enter number or press Enter for default: "); io::stdout().flush().unwrap(); let mut input = String::new(); io::stdin().read_line(&mut input).unwrap(); let input = input.trim(); if input.is_empty() { None } else { let choice = input.parse::().unwrap_or(1); let chosen = mirrors.get(choice.saturating_sub(1)).unwrap_or(&mirrors[0]); println!("Using package mirror: {}", Style::new().green().apply_to(chosen)); Some(chosen.to_string()) } }