name: Update Mod Versions

on:
  schedule:
    - cron: '0 * * * *'  # Run every hour
  workflow_dispatch:     # Allow manual triggers

jobs:
  update-versions:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        with:
          token: ${{ secrets.PAT_TOKEN }}  # Use PAT for checkout
          
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
          cache: 'pip'  # This enables pip caching
          
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install requests
          
      - name: Update mod versions
        env:
          GITHUB_TOKEN: ${{ github.token }}
        run: |
          python .github/scripts/update_mod_versions.py
          
      - name: Commit and push changes
        run: |
          git config --global user.name 'Version Update Bot'
          git config --global user.email 'bot@noreply.github.com'
          
          if [[ $(git status --porcelain) ]]; then
            COMMIT_MSG="Auto-update mod versions"
            if [ -f commit_message.txt ]; then
              COMMIT_MSG=$(cat commit_message.txt)
            fi
            
            git add mods/*/meta.json
            git commit -m "$COMMIT_MSG"
            git push
          else
            echo "No changes to commit"
          fi
