0ad/source/tools/entity
Dunedan e755ef7155
Improve performance and output of entvalidate.py
The most notable changes are:

- improved performance thanks to using `lxml` instead of `xmllint` for
  validating the templates
- improved performance by parallelizing the validation across multiple
  threads
- more meaningful output for detected validation errors
- easier to call from other scripts (like checkrefs.py)
2025-03-18 12:57:01 +01:00
..
scriptlib Enable ruff rules for docstrings and comments 2024-08-31 21:09:20 +02:00
checkrefs.py Move xmlvalidator code to entity directory 2025-03-03 17:45:08 +01:00
entvalidate.py Improve performance and output of entvalidate.py 2025-03-18 12:57:01 +01:00
readme.md Add a markdownlint pre-commit hook 2024-08-27 10:06:31 +02:00
requirements.txt Improve performance and output of entvalidate.py 2025-03-18 12:57:01 +01:00
validate_grammar.py Move xmlvalidator code to entity directory 2025-03-03 17:45:08 +01:00
validator.py Move xmlvalidator code to entity directory 2025-03-03 17:45:08 +01:00

Checkrefs.py

Description

This script checks the game files for missing dependencies, unused files, and for file integrity. If mods are specified, all their dependencies are also checked recursively. This script is particularly useful to detect broken actors or templates.

Requirements

  • Python 3.6+ interpreter installed
  • lxml for the -a option.

Usage

  • cd in source/tools/entity and run the script.
usage: checkrefs.py [-h] [-u] [-x] [-a] [-t] [-m MOD [MOD ...]]

Checks the game files for missing dependencies, unused files, and for file integrity.

options:
  -h, --help            show this help message and exit
  -u, --check-unused    check for all the unused files in the given mods and their dependencies.
                        Implies --check-map-xml. Currently yields a lot of false positives.
  -x, --check-map-xml   check maps for missing actor and templates.
  -a, --validate-actors
                        run the validator.py script to check if the actors files have extra or
                        missing textures.
  -t, --validate-templates
                        run the validator.py script to check if the xml files match their (.rng)
                        grammar file.
  -m MOD [MOD ...], --mods MOD [MOD ...]
                        specify which mods to check. Default to public.