name: Shellfmt
on:
  workflow_dispatch:
  push:
    branches:
      - main
      - "release/**"
    paths:
      - "**.sh"
      - "**.bash"
  pull_request:
    paths:
      - "**.sh"
      - "**.bash"

jobs:
  shellcheck:
    name: Shellfmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
        with:
          ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}

      - name: Setup Go environment
        uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
        with:
          go-version: "1.19.4"

      - name: Install shellfmt
        shell: bash
        run: |
          go install github.com/katexochen/sh/v3/cmd/shfmt@latest

      - name: Run shellfmt
        shell: bash
        run: |
          # shellcheck disable=SC2046
          shfmt -i 2 -d -s -sr $(shfmt -f . | grep -v helm/charts/cilium)
