mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-11 03:23:51 +00:00
feat(editor): add --magic-fix to auto-rename files to canonical extension
Natural follow-up to --audit-tree: when that utility flags ext-mismatch or magic-no-ext issues, --magic-fix proposes (and optionally applies) the renames that resolve them. Walks a directory recursively, reads each file's 4-byte magic, looks it up in the format table, and renames to the canonical extension when the current extension doesn't match (or is absent). Defaults to dry-run for safety — prints the proposed renames so they can be reviewed first; pass --apply to commit them. Refuses to clobber existing files: when the target path already exists (e.g. foo.wsct + foo.wsrg both with WSRG magic), the rename is flagged as a collision and skipped, leaving both files in place for manual resolution. Returns exit 1 if any proposals exist (in dry-run) or any collisions are skipped (in apply), so it composes into shell pipelines. JSON sidecar via --json. Suggested workflow: --audit-tree dir # find what's broken --magic-fix dir # preview the auto-fixes --magic-fix dir --apply # commit them --audit-tree dir # confirm clean CLI flag count 921 -> 922.
This commit is contained in:
parent
3e73860475
commit
74be3f6135
6 changed files with 215 additions and 0 deletions
|
|
@ -1367,6 +1367,8 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Compare two .w* files at the standard catalog header level (magic / version / name / entry count / file size). Exit 1 if any field differs\n");
|
||||
std::printf(" --audit-tree <dir> [--json]\n");
|
||||
std::printf(" Walk directory recursively and flag corrupted/misnamed Wowee files: too-small, unknown-magic, ext/magic mismatch, magic-without-ext, truncated headers. Exit 1 on any issue\n");
|
||||
std::printf(" --magic-fix <dir> [--apply] [--json]\n");
|
||||
std::printf(" Auto-rename files whose extension doesn't match their magic to the canonical extension. Default is dry-run; pass --apply to commit. Skips collisions where the target already exists. Natural follow-up to --audit-tree\n");
|
||||
std::printf(" --gen-animations <wani-base> [name]\n");
|
||||
std::printf(" Emit .wani starter: 5 essential animations (Stand / Walk / Run / Death / AttackUnarmed) with fallback chains\n");
|
||||
std::printf(" --gen-animations-combat <wani-base> [name]\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue