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) usespackmanas 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.pathis checked forrepo_tools.tomlfile. Each top level entry in that config can declare a tool, if it contains bothcommandandentry_pointfield.repo_man loads
repo.tomlin 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.