diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-14 14:58:38 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-14 14:58:38 +0100 |
commit | 7ff78cff53eba1da60b8beb851732e2f8197c221 (patch) | |
tree | fa6d914270ba1acdeddbc3aa1ce1cf7cf0824a7b /src/bin/yaml.rs | |
parent | 6debd2c0a230d623c06869ca4c4f13519f53eb5d (diff) | |
download | unity-tools-7ff78cff53eba1da60b8beb851732e2f8197c221.tar unity-tools-7ff78cff53eba1da60b8beb851732e2f8197c221.tar.bz2 unity-tools-7ff78cff53eba1da60b8beb851732e2f8197c221.tar.zst |
move files around
Diffstat (limited to 'src/bin/yaml.rs')
-rw-r--r-- | src/bin/yaml.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/bin/yaml.rs b/src/bin/yaml.rs deleted file mode 100644 index 4ef8933..0000000 --- a/src/bin/yaml.rs +++ /dev/null @@ -1,50 +0,0 @@ -use serde_yml::Value; -use std::{ - env::args, - fs::File, - io::{BufReader, stdout}, -}; -use unity_tools::{classes::HValue, serialized_file::SerializedFile, unityfs::UnityFS}; - -fn main() -> anyhow::Result<()> { - env_logger::init_from_env("LOG"); - let file = BufReader::new(File::open(args().nth(1).unwrap())?); - let mut fs = UnityFS::open(file)?; - let filter = args().nth(2); - - let node = fs.find_main_file().unwrap().to_owned(); - let mut cab = fs.read(&node)?; - - let mut file = SerializedFile::read(&mut cab)?; - for ob in file.objects.clone() { - if let Some(f) = &filter { - if file.get_object_type_tree(&ob)?.type_string != *f && ob.path_id.to_string() != *f { - continue; - } - } - let value = file.read_object(ob)?; - let hvalue = HValue::from_value(value)?; - - let mut hvalue = serde_yml::to_value(hvalue)?; - trim_large_arrays(&mut hvalue); - - serde_yml::to_writer(stdout(), &hvalue).unwrap(); - println!() - } - - Ok(()) -} - -fn trim_large_arrays(v: &mut Value) { - match v { - Value::Sequence(values) => { - values.iter_mut().for_each(trim_large_arrays); - while values.len() > 32 { - values.pop(); - } - } - Value::Mapping(mapping) => mapping.map.values_mut().for_each(trim_large_arrays), - Value::Tagged(tagged_value) => trim_large_arrays(&mut tagged_value.value), - _ => (), - } -} |