proton_launch/command/
info.rs1use 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 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}