Compare commits

..

2 Commits

Author SHA1 Message Date
SadlyNotSappho 4ec3c557fd format and add data to config string 2023-07-10 09:04:48 -07:00
SadlyNotSappho 7e748a8979 add os detection for steam and config 2023-07-10 09:02:01 -07:00
1 changed files with 23 additions and 5 deletions

View File

@ -10,8 +10,7 @@ pub struct ConfigFile {
pub fn get_home() -> String { pub fn get_home() -> String {
let home = match std::env::consts::OS { let home = match std::env::consts::OS {
"linux" => std::env::var("HOME").expect("how is there not a $HOME"), "linux" => std::env::var("HOME").expect("how is there not a $HOME"),
"windows" => std::env::var("userprofile") "windows" => std::env::var("userprofile").expect("yell at me if this doesn't work please"),
.expect("yell at me if this doesn't work please i'm not going to touch windows"),
_ => std::env::var("HOME").expect( _ => std::env::var("HOME").expect(
"if this doesn't work, you're probably on macos, which i literally cannot test on", "if this doesn't work, you're probably on macos, which i literally cannot test on",
), ),
@ -33,7 +32,9 @@ pub fn create_config(file: &String) -> bool {
}; };
if file_path.exists() && !Path::new(&replaced).exists() { if file_path.exists() && !Path::new(&replaced).exists() {
let file_contents = "{{ \"archives\": \"{{CONFIG}/CyberModManager/Archives\", \"folders\": \"{{CONFIG}/CyberModManager/Mods\", \"game_folder\": \"{{STEAM}/steamapps/common/Cyberpunk 2077\"}"; let config = get_config_location();
let steam = get_steam_location();
let file_contents = format!("{{ \"archives\": \"{}/CyberModManager/Archives\", \"folders\": \"{}/CyberModManager/Mods\", \"game_folder\": \"{}/steamapps/common/Cyberpunk 2077\"}}", config, config, steam);
fs::write(replaced, file_contents).expect("couldn't write to config file"); fs::write(replaced, file_contents).expect("couldn't write to config file");
true true
} else { } else {
@ -41,7 +42,25 @@ pub fn create_config(file: &String) -> bool {
} }
} }
pub fn get_steam_location() -> () { pub fn get_steam_location() -> String {
// windows: C:\Program Files (x86)\Steam
// linux: ~/.local/share/Steam
match std::env::consts::OS {
"linux" => String::from(format!("{}/.local/share/Steam", get_home())),
"windows" => String::from("C:\\Program Files (x86)\\Steam"),
_ => panic!(
"if ya tell me what OS you're on and where your steam location is, i can fix this"
),
}
}
pub fn get_config_location() -> String {
// windows: ~\AppData\Roaming
// linux: ~/.config
match std::env::consts::OS {
"linux" => String::from(format!("{}/.config", get_home())),
"windows" => String::from(format!("{}\\AppData\\Roaming", get_home())),
_ => String::from(format!("{}/.config", get_home())),
}
} }
pub fn read_config(file: &String) -> Config { pub fn read_config(file: &String) -> Config {
@ -61,4 +80,3 @@ pub struct Config {
pub latest_date: String, pub latest_date: String,
pub cache_folder: String, pub cache_folder: String,
} }