diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-25 15:42:46 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-25 15:42:46 +0100 |
commit | 6bdc402597ade997d1ceb69062b11248d32e9a6f (patch) | |
tree | aedeb5c69dcb46be1ad2100af85d09308da99aaf /exporter/src | |
parent | d503115899322e9b8bd835da82da3d6f74028bda (diff) | |
download | unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.bz2 unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.zst |
toplevel list tool
Diffstat (limited to 'exporter/src')
-rw-r--r-- | exporter/src/bin/toplevel.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/exporter/src/bin/toplevel.rs b/exporter/src/bin/toplevel.rs new file mode 100644 index 0000000..2198469 --- /dev/null +++ b/exporter/src/bin/toplevel.rs @@ -0,0 +1,22 @@ +use std::{cmp::Reverse, collections::BTreeMap, env::args, fs::File, io::BufReader}; +use unity_tools::assetbundle::AssetBundle; + +fn main() -> anyhow::Result<()> { + env_logger::init_from_env("LOG"); + let file = BufReader::new(File::open(args().nth(1).unwrap()).unwrap()); + let mut bundle = AssetBundle::open(file, "samples")?; + + let mut counters = BTreeMap::<String, usize>::new(); + for ob in bundle.all_toplevel() { + *counters.entry(ob.class).or_default() += 1; + } + + let mut s = counters.into_iter().collect::<Vec<_>>(); + s.sort_by_key(|s| Reverse(s.1)); + + for (k, c) in s { + println!("{c:6} {k}"); + } + + Ok(()) +} |