| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env bash
- # This script is used to setup a virtual environment for QMK use, and subsequently allows running `qmk` commands from the virtual environment.
- # Exit on error
- set -eEuo pipefail
- umask 022
- # Find the QMK firmware directory
- this_script=$(realpath "${BASH_SOURCE[0]}")
- this_dir=$(dirname "$this_script")
- qmk_firmware_dir=$(realpath "$this_dir/..")
- # Allow overriding the virtual environment directory from the environment, if necessary
- if [ -z "${QMK_VENV_DIR:-}" ]; then
- QMK_VENV_DIR="$qmk_firmware_dir/.venv"
- fi
- # Switch to the QMK firmware directory
- cd "$qmk_firmware_dir"
- # Check if the virtual environment exists
- if [ ! -d "$QMK_VENV_DIR" ]; then
- echo "Creating virtual environment..."
- python3 -m venv "$QMK_VENV_DIR"
- fi
- # Activate the virtual environment
- source "$QMK_VENV_DIR/bin/activate"
- # Install qmk into the venv if it's not already installed
- if [[ ! -e "$QMK_VENV_DIR/bin/qmk" ]]; then
- echo "Installing QMK CLI..."
- pip install --require-virtualenv --quiet --no-input --upgrade pip qmk
- pip install --require-virtualenv --quiet --no-input --upgrade -r requirements-dev.txt
- fi
- # Run the arguments as if it were a `qmk` command
- exec "$@"
|