Skip to content

Commit

Permalink
Write default location in steam
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilipK committed Oct 2, 2021
1 parent 6c042a0 commit d9a5357
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 14 deletions.
8 changes: 8 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,14 @@ fn save_settings_to_file(settings: &Settings) {

#[cfg(feature = "ui")]
fn update_ui_with_settings(ui: &mut mainview::UserInterface, settings: &Settings) {
ui.steam_location_input.set_value(
&settings
.steam
.location
.clone()
.unwrap_or(steam::get_default_location().unwrap_or(String::from(""))),
);

ui.enable_steamgrid_db_checkbox
.set_value(settings.steamgrid_db.enabled);
ui.steamgrid_db_auth_key_input.set_value(
Expand Down
41 changes: 27 additions & 14 deletions src/steam/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,20 +60,7 @@ pub fn get_shortcuts_paths(
let user_location = settings.location.clone();
let steam_path_str = match user_location {
Some(location) => location,
None => {
#[cfg(target_os = "windows")]
let path_string = {
let key = "PROGRAMFILES(X86)";
let program_files = env::var(key)?;
format!("{program_files}//Steam//", program_files = program_files)
};
#[cfg(target_os = "linux")]
let path_string = {
let home = std::env::var("HOME")?;
format!("{}/.steam/steam/", home)
};
path_string
}
None => get_default_location()?,
};
let steam_path = Path::new(&steam_path_str);
if !steam_path.exists() {
Expand Down Expand Up @@ -113,6 +100,32 @@ pub fn get_shortcuts_paths(
Ok(users_info)
}

pub fn get_default_location() -> Result<String, Box<dyn Error>> {
#[cfg(target_os = "windows")]
let path_string = {
let key = "PROGRAMFILES(X86)";
let program_files = env::var(key)?;
String::from(
Path::new(&program_files)
.join("Steam")
.to_str()
.unwrap_or(""),
)
};
#[cfg(target_os = "linux")]
let path_string = {
let home = std::env::var("HOME")?;
String::from(
Path::new(&home)
.join(".steam")
.join("steam")
.to_str()
.unwrap_or(""),
)
};
Ok(path_string)
}

#[derive(Debug)]
struct SteamFolderNotFound {
location_tried: String,
Expand Down

0 comments on commit d9a5357

Please sign in to comment.