# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# SPDX-License-Identifier: curl

name: proselint

on:
  push:
    branches:
      - master
      - '*/ci'
    paths:
      - '.github/workflows/proselint.yml'
      - '**.md'
  pull_request:
    branches:
      - master
    paths:
      - '.github/workflows/proselint.yml'
      - '**.md'

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

permissions: {}

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

      - name: install prereqs
        run: |
          sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
          sudo apt-get install python3-proselint

      # config file help: https://github.com/amperser/proselint/
      - name: create proselint config
        run: |
          cat <<JSON > $HOME/.proselintrc
          {
            "checks": {
              "typography.diacritical_marks": false,
              "typography.symbols": false,
              "annotations.misc": false,
              "security.password": false
            }
          }
          JSON

      - name: check prose
        run: git ls-files '*.md' | grep -Ev 'CHECKSRC.md|DISTROS.md|CURLOPT_INTERFACE.md' | xargs proselint README

      # This is for CHECKSRC and files with aggressive exclamation mark needs
      - name: create second proselint config
        run: |
          cat <<JSON > $HOME/.proselintrc
          {
            "checks": {
              "typography.diacritical_marks": false,
              "typography.symbols": false,
              "typography.exclamation": false,
              "annotations.misc": false
            }
          }
          JSON

      - name: check special prose
        run: proselint docs/CHECKSRC.md docs/libcurl/opts/CURLOPT_INTERFACE.md
