1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::{
    toolchain::CompatibleToolchainBuilder, utils::directory::PycorsPathsProviderFromEnv, Result,
};

pub fn run(version: Option<String>) -> Result<()> {
    let compatible_toolchain_builder = match version {
        Some(version) => CompatibleToolchainBuilder::new().load_from_string(&version),
        None => CompatibleToolchainBuilder::new().load_from_file(),
    };
    let compatible_toolchain = compatible_toolchain_builder
        .pick_latest_if_none_found()
        .compatible_version(PycorsPathsProviderFromEnv::new())?;

    match compatible_toolchain {
        Some(compatible_toolchain) => print!("{}", compatible_toolchain.location.display()),
        None => {
            log::error!("No Python interpreter found at all. Please install at least one!");
            println!()
        }
    }

    Ok(())
}