# 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@v4

      - name: install prereqs
        run: 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: a=`git ls-files '*.md' | grep -v docs/CHECKSRC.md` && proselint $a 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: a=docs/CHECKSRC.md && proselint $a
