3. fox CLI Basics

The interface to interact with the repository is the fox CLI, which is implemented in the root of the repository at cli/**. The fox CLI enables to e.g., build the embedded binary or run tests. The goal of the fox CLI is to control and simplify the interaction with the repository. Therefore, it is not needed to

  • set or change any environment variables or

  • activate/deactivate any virtual Python environments.

The fox CLI is implemented as Python module. To simplify its usage, the following shell wrappers are provided (also at the root of the repository):

  • fox.ps1 for PowerShell (pwsh.exe)

  • fox.sh for Bash (bash)

Users shall always use these shell wrappers, and not the Python module directory. The basic usage of the respective wrapper is defined by the used terminal:

.\fox.ps1

3.1. Implementation Details

For details on the fox CLI implementation, see Developing fox CLI.

3.2. Usage

For details on the fox CLI usage, see fox CLI Usage.

Usage: fox.py [OPTIONS] COMMAND [ARGS]...

  Run the top-level ``fox.py`` command group.

  Args:     ctx: Click context for command dispatch and help rendering.
  show_config: If ``True``, print version/configuration information.

Options:
  --version          Show the version and exit.
  -s, --show-config  Shows foxBMS configuration information.
  -h, --help         Show this message and exit.

Commands:
  bms           Run the interactive BMS communication shell.
  bootloader    Bootloader command group entry point.
  ceedling      Run the ``ceedling`` unit testing tool.
  cli-unittest  Run unit-tests on the CLI tool itself.
  com-test      Communication command group entry point.
  db            Database command group entry point.
  etl           ETL command group entry point.
  gui           Run the graphical user interface.
  ide           Open one or more pre-configured VS Code workspaces.
  install       Installation information and instructions
  log           Log CAN traffic to rolling output files.
  misc          Miscellaneous command group entry point.
  plot          Generate plots from input data files or directories.
  pre-commit    Run the ``pre-commit`` tool with forwarded raw arguments.
  run-program   Run the provided program.
  run-script    Run the provided script.
  waf           Run the ``waf`` build tool.

3.3. fox CLI package

Note

Further documentation on the fox CLI package:

If only some of the fox CLI tools are needed and access to the repository is not required, use the fox CLI package. To interact with the fox CLI package, use the following command regardless of the terminal used:

fox-cli