name: File Generator

on:
  workflow_dispatch:
  push:
    paths:
      - "src/**/*"

env:
  DENO_DIR: deno_cache
  HAS_USERSTYLES_TOKEN: ${{ secrets.USERSTYLES_TOKEN != '' }}

jobs:
  generate-health-files:
    runs-on: ubuntu-latest
    name: Generate Health Files
    permissions:
      # Give the default GITHUB_TOKEN write permission to commit and push the
      # added or changed files to the repository.
      contents: write

    steps:
      - name: Check Out Repository
        uses: actions/checkout@v3
        if: env.HAS_USERSTYLES_TOKEN
        with:
          token: ${{ secrets.USERSTYLES_TOKEN }}
          ref: ${{ github.ref }}

      - name: Check Out Repository (Fork)
        uses: actions/checkout@v3
        if: env.HAS_USERSTYLES_TOKEN == 'false'
        with:
          ref: ${{ github.ref }}

      - name: Set up Deno
        uses: denoland/setup-deno@v1
        with:
          deno-version: v1.x

      - name: Cache Deno dependencies
        uses: actions/cache@v3
        with:
          key: ${{ hashFiles('src/generate/deno.lock') }}
          path: ${{ env.DENO_DIR }}

      - name: Update Health Files
        working-directory: src/generate
        run: ./generate.ts

      - name: Push Changes
        uses: stefanzweifel/git-auto-commit-action@v4
        if: ${{ github.repository == 'catppuccin/userstyles' && github.ref == 'refs/heads/main' && env.HAS_USERSTYLES_TOKEN }}
        with:
          commit_message: "chore: generate health files"
          commit_author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
          branch: ${{ github.ref }}
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json