diff --git a/src/lib/dxvk.rs b/src/lib/dxvk.rs index 080cc8e..71f7357 100644 --- a/src/lib/dxvk.rs +++ b/src/lib/dxvk.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Deserialize}; use std::io::{Error, ErrorKind}; +use std::process::{Command, Output}; use lazy_static::lazy_static; use regex::Regex; @@ -69,7 +70,7 @@ impl Version { std::path::Path::new(&format!("{}/{}", folder.to_string(), self.name)).exists() } - pub fn apply(&self, dxvks_folder: T, prefix_path: T) -> std::io::Result { + pub fn apply(&self, dxvks_folder: T, prefix_path: T) -> std::io::Result { let apply_path = format!("{}/{}/setup_dxvk.sh", dxvks_folder.to_string(), self.name); let config = config::get()?; @@ -102,7 +103,7 @@ impl Version { std::fs::write(&apply_path, apply_script)?; - let output = std::process::Command::new("bash") + let output = Command::new("bash") .arg(&apply_path) .arg("install") .env("WINEARCH", "win64") @@ -111,7 +112,7 @@ impl Version { .output()?; if output.status.success() { - Ok(String::from_utf8(output.stdout).unwrap()) + Ok(output) } else { diff --git a/src/ui/components/dxvk_row.rs b/src/ui/components/dxvk_row.rs index a481449..1206a86 100644 --- a/src/ui/components/dxvk_row.rs +++ b/src/ui/components/dxvk_row.rs @@ -71,7 +71,7 @@ impl DxvkRow { } } - pub fn apply(&self, dxvks_folder: T, prefix_path: T) -> std::io::Result { + pub fn apply(&self, dxvks_folder: T, prefix_path: T) -> std::io::Result { self.button.set_sensitive(false); self.apply_button.set_sensitive(false); diff --git a/src/ui/first_run/mod.rs b/src/ui/first_run/mod.rs index e843712..f888594 100644 --- a/src/ui/first_run/mod.rs +++ b/src/ui/first_run/mod.rs @@ -323,7 +323,7 @@ impl App { // Apply DXVK match dxvk_version.apply(&config.game.dxvk.builds, &config.game.wine.prefix) { Ok(output) => { - println!("Applied DXVK:\n\n{output}"); + println!("Applied DXVK:\n\n{}", String::from_utf8_lossy(&output.stdout)); // Update dxvk config config.game.dxvk.selected = Some(dxvk_version.name.clone()); diff --git a/src/ui/preferences/general.rs b/src/ui/preferences/general.rs index 10c6ae6..776f270 100644 --- a/src/ui/preferences/general.rs +++ b/src/ui/preferences/general.rs @@ -308,7 +308,7 @@ impl App { let config = config::get().expect("Failed to load config"); match component.apply(&config.game.dxvk.builds, &config.game.wine.prefix) { - Ok(output) => println!("{}", output), + Ok(output) => println!("{}", String::from_utf8_lossy(&output.stdout)), Err(err) => { this.update(Actions::Toast(Rc::new(( String::from("Failed to apply DXVK"), err @@ -417,7 +417,7 @@ impl App { if let Ok(awaiter) = component.download(&config.game.dxvk.builds) { awaiter.then(clone!(@strong this => move |_| { match component.apply(&config.game.dxvk.builds, &config.game.wine.prefix) { - Ok(output) => println!("{}", output), + Ok(output) => println!("{}", String::from_utf8_lossy(&output.stdout)), Err(err) => { this.update(Actions::Toast(Rc::new(( String::from("Failed to apply DXVK"), err @@ -513,7 +513,7 @@ impl App { std::thread::spawn(clone!(@strong config, @strong this => move || { match version.apply(&config.game.dxvk.builds, &config.game.wine.prefix) { - Ok(output) => println!("{}", output), + Ok(output) => println!("{}", String::from_utf8_lossy(&output.stdout)), Err(err) => { this.update(Actions::Toast(Rc::new(( String::from("Failed to apply DXVK"), err