.github/workflows/shellcheck.yml

name: shellcheck

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

permissions:
  contents: read

jobs:
  shellcheck:
    name: shellcheck *.sh
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4

      - name: install shellcheck
        run: sudo apt-get update && sudo apt-get install -y shellcheck

      - name: run shellcheck on all *.sh
        run: |
          mapfile -t files < <(find . -type f -name '*.sh' -not -path './.git/*')
          printf 'checking %d file(s)\n' "${#files[@]}"
          shellcheck --severity=warning --shell=bash "${files[@]}"