How It Works#
Run Flow#
Each repo has repo.bat
and repo.sh
in the root. When user runs one of these (based on their platform), the following happens:
repo.bat
(Windows) orrepo.sh
(Linux) usespackman
as bootstrapper to get python and download other tools. It invokes Python to run the bootstrap script. Typically fromtools/repoman/repoman.py
.The bootstrap script uses packman API to download project dependencies (usually defined in
deps/repo-deps.packman.xml
). These dependencies are added to Python’ssys.path
.omni.repo.man.main(path_to_root)
is called. repo_man automatically looks for tools in pythonsys.path
. Each path insys.path
is checked forrepo_tools.toml
file. Each top level entry in that config can declare a tool, if it contains bothcommand
andentry_point
field.repo_man loads
repo.toml
in the root of the repo to determine which settings to override for each tool.If user passed a tool to run
repo [tool_name]
repo_man calls in the tool (using function returned byentry_point
) providing resolved configuration and command line options.