Basic structure¶
The basic structure of the LFSBuilder tool is shown in the diagram below
lfsbuilder/
├── actions.py
├── builders.py
├── cli.py
├── components.py
├── config.py
├── downloader.py
├── lfsbuilder.py
├── printer.py
├── prueba.py
├── recipes/
│ ├── builders/
│ └── components/
├── requirements.txt
├── templates/
│ ├── script.tpl
│ └── setenv.tpl
├── tests/
│ ├── __init__.py
│ ├── test_actions.py
│ ├── test_config.py
│ ├── test_downloader.py
│ ├── test_tools.py
│ └── test_xmlparser.py
├── tools.py
└── xmlparser.py
The lfsbuilder
main directory contains the source code files and the main configuration file. The source code files are listed below:
actions.py
: custom actions for the different command line arguments.builders.py
: logic to build a components list.cli.py
: command line interface. Uses Pythonargparse
native library.components.py
: required logic for building a component, whether it requires compilation or not.config.py
: main configuration file. Several of the options are available as cli options.downloader.py
: takes care of downloading books’ XML files and source code of components.lfsbuilder.py
: main file of the tool. User interacts with it.printer.py
: defines different functions for printing messages.tools.py
: implements multiple functions that are used during the build process as read/write files, doing subsitutions in files, execute programs, etc.xmlparser.py
: logic to read books’ XML files and write each constructor’s commands file.