name: prepare

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  main:
    runs-on: ubuntu-latest

    steps:
      - name: Clone repository
        uses: actions/checkout@v4

      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: stable

      - name: Verify code formatting
        run: |
          go install mvdan.cc/sh/v3/cmd/shfmt@latest
          shfmt --list --diff ./bin/* || exit 1

      - name: Run linter
        run: |
          sudo apt install shellcheck
          shellcheck ./bin/* || exit 1