name: Generate Rules

on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          github-server-url: https://git.halonice.com

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Prepare config
        shell: bash
        run: |
          if [ -f configs/config.toml ]; then
            echo "Use existing configs/config.toml"
          elif [ -f configs/config.json ]; then
            echo "Use existing configs/config.json"
          elif [ -f configs/examples/config.example.toml ]; then
            cp configs/examples/config.example.toml configs/config.toml
            echo "Generated configs/config.toml from example"
          else
            echo "No config file found" >&2
            exit 1
          fi

      - name: Generate rules
        env:
          GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
          UPSTREAM_REF: ${{ vars.UPSTREAM_REF }}
        run: |
          UPSTREAM_REF="${UPSTREAM_REF:-master}"
          bash tools/sync_surge_full.sh
          if [ -f configs/config.toml ]; then
            python3 src/rulegen.py --config configs/config.toml
          else
            python3 src/rulegen.py --config configs/config.json
          fi
