name: cbfmt check

on:
    push:
        branches:
            - "main"
    pull_request:

jobs:
    cbfmt:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - name: Download cbfmt
              run: |
                  mkdir /tmp/cbfmt && cd $_
                  curl -fsSL -o cbfmt.tar.gz "https://github.com/lukas-reineke/cbfmt/releases/download/v0.2.0/cbfmt_linux-x86_64_v0.2.0.tar.gz"
                  tar --strip-components 1 -xvf cbfmt.tar.gz
                  mv cbfmt /usr/local/bin/
            - name: Download Stylua
              run: |
                  mkdir /tmp/stylua && cd $_
                  curl -fsSL -o stylua.zip "https://github.com/JohnnyMorganz/StyLua/releases/download/v0.20.0/stylua-linux.zip"
                  unzip -d /usr/local/bin stylua.zip
            - name: Download Shellharden
              run: |
                  mkdir /tmp/shellharden && cd $_
                  curl -fsSL -o shellharden.tar.gz https://github.com/alsuren/cargo-quickinstall/releases/download/shellharden-4.2.0-x86_64-unknown-linux-gnu/shellharden-4.2.0-x86_64-unknown-linux-gnu.tar.gz
                  tar -xvf shellharden.tar.gz
                  mv shellharden /usr/local/bin/
            - name: Run cbfmt check
              # Lua examples in README.md doesn't conform to Stylua rules, on purpose.
              run: find . -name '*.md' -not -path './dependencies/*' -not -path './README.md' | xargs cbfmt --check
