aboutsummaryrefslogtreecommitdiff
path: root/src/bin/probe.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/probe.rs')
-rw-r--r--src/bin/probe.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/bin/probe.rs b/src/bin/probe.rs
new file mode 100644
index 0000000..85b2a7a
--- /dev/null
+++ b/src/bin/probe.rs
@@ -0,0 +1,25 @@
+use anyhow::Result;
+use std::{env::args, fs::File, io::BufReader};
+use unity_tools::{serialized_file::read_serialized_file_header, unityfs::UnityFS};
+
+fn main() -> Result<()> {
+ let file = BufReader::new(File::open(args().nth(1).unwrap())?);
+ let mut fs = UnityFS::open(file)?;
+
+ for node in fs.nodes().to_vec() {
+ if node.name.ends_with(".resource") || node.name.ends_with(".resS") {
+ continue;
+ }
+ let mut cab = fs.read(&node)?;
+ let ch = read_serialized_file_header(&mut cab)?;
+
+ if fs.unity_version.is_ascii() && ch.generator_version.is_ascii() && ch.format < 100 {
+ println!(
+ "{}\t{}\t{}\t{}",
+ fs.file_version, fs.unity_version, ch.format, ch.generator_version
+ );
+ }
+ }
+
+ Ok(())
+}