proton_launch/command/
info.rs

1use crate::{paths::Paths, proton::ProtonVersion, steam::SteamData};
2
3use super::{Runnable, RunnableResult};
4
5#[derive(Debug, Clone)]
6#[cfg_attr(feature = "commandline", derive(clap::Args))]
7pub struct Info {
8    /// Proton version to get info for
9    version: Option<ProtonVersion>,
10}
11
12impl Runnable for Info {
13    fn run(&self, _paths: &Paths, steam_data: &SteamData) -> RunnableResult<()> {
14        let protons = if let Some(version) = self.version {
15            vec![version]
16        } else {
17            ProtonVersion::all()
18        };
19        for p in protons {
20            println!("=== {} ===", p);
21            println!("Install url: {}", p.install_url());
22            println!("Uninstall url: {}", p.uninstall_url());
23            println!("App id: {}", p.get_appid());
24            let installed = steam_data.has_app(p.get_appid());
25            println!("Installed: {}", installed);
26            if installed {
27                let path = steam_data.get_app_dir(p.get_appid());
28                println!("Path: {:?}", path);
29            }
30            println!();
31        }
32        Ok(())
33    }
34}