Compare commits

...

2 Commits

Author SHA1 Message Date
Julian 4bec7d8198
0.2.1 2023-02-03 14:02:22 -05:00
Julian 9abd399115
Use root folder name from zip 2023-02-03 14:01:57 -05:00
3 changed files with 28 additions and 11 deletions

2
Cargo.lock generated
View File

@ -491,7 +491,7 @@ dependencies = [
[[package]] [[package]]
name = "geezshade" name = "geezshade"
version = "0.2.0" version = "0.2.1"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"copypasta", "copypasta",

View File

@ -2,7 +2,7 @@
name = "geezshade" name = "geezshade"
description = "Automated ReShade setup for FFXIV with GShade presets" description = "Automated ReShade setup for FFXIV with GShade presets"
authors = ["NotNite <hi@notnite.com>"] authors = ["NotNite <hi@notnite.com>"]
version = "0.2.0" version = "0.2.1"
edition = "2021" edition = "2021"
[dependencies] [dependencies]

View File

@ -65,18 +65,35 @@ fn get_gshade_presets(xiv_install: PathBuf, config: GeezShadeConfig) -> anyhow::
let shaders_zip = zip::ZipArchive::new(Cursor::new(gshade_shaders))?; let shaders_zip = zip::ZipArchive::new(Cursor::new(gshade_shaders))?;
let presets_zip = zip::ZipArchive::new(Cursor::new(gshade_presets))?; let presets_zip = zip::ZipArchive::new(Cursor::new(gshade_presets))?;
let shaders_folders = vec![ let shaders_folder_name = shaders_zip
"GShade-master/Textures", .file_names()
"GShade-master/Shaders", .next()
"GShade-master/ComputeShaders", .unwrap()
]; .split('/')
let presets_folders = vec!["GShade-Presets-master/FFXIV"]; .next()
.unwrap()
.to_string();
let presets_folder_name = presets_zip
.file_names()
.next()
.unwrap()
.split('/')
.next()
.unwrap()
.to_string();
let shaders_folders = vec!["Textures", "Shaders", "ComputeShaders"]
.iter()
.map(|x| format!("{}/{}", shaders_folder_name, x))
.collect::<Vec<String>>();
let presets_folders = vec![format!("{}/FFXIV", presets_folder_name)];
let dir = xiv_install.join("reshade-shaders"); let dir = xiv_install.join("reshade-shaders");
println!("extracting presets"); println!("extracting presets");
extract(dir.clone(), shaders_zip, shaders_folders.clone())?; extract(dir.clone(), shaders_zip, shaders_folders)?;
extract(dir, presets_zip, presets_folders.clone())?; extract(dir, presets_zip, presets_folders)?;
Ok(()) Ok(())
} }
@ -84,7 +101,7 @@ fn get_gshade_presets(xiv_install: PathBuf, config: GeezShadeConfig) -> anyhow::
fn extract( fn extract(
dir: PathBuf, dir: PathBuf,
presets_zip: ZipArchive<Cursor<Vec<u8>>>, presets_zip: ZipArchive<Cursor<Vec<u8>>>,
presets_folders: Vec<&str>, presets_folders: Vec<String>,
) -> anyhow::Result<()> { ) -> anyhow::Result<()> {
for filename in presets_zip.file_names() { for filename in presets_zip.file_names() {
for folder in &presets_folders { for folder in &presets_folders {