name: Format

on: [push, pull_request]

jobs:
  clang-format:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Run clang-format
      run: |
        pipx run "clang-format>=17,<18" \
          --Werror \
          --dry-run \
          --style=file \
          ISLE/*.cpp ISLE/*.h \
          LEGO1/*.cpp LEGO1/*.h \
          LEGO1/mxstl/*.h \
          LEGO1/realtime/*.cpp LEGO1/realtime/*.h \
          LEGO1/tgl/*.h \
          LEGO1/tgl/d3drm/*.cpp LEGO1/tgl/d3drm/*.h \
          LEGO1/viewmanager/*.cpp LEGO1/viewmanager/*.h

  python-format:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Install python libraries
      shell: bash
      run: |
        pip install black pylint pytest -r tools/requirements.txt

    - name: Run pylint and black
      shell: bash
      run: |
        pylint tools --ignore=build,ncc
        black --check tools --exclude=ncc
