name: Update Copyright Year

on:
  schedule:
    - cron: '0 3 1 1 *'
  workflow_dispatch:

jobs:
  update-copyright:
    runs-on: ubuntu-latest
    steps:

      - name: Get current year
        id: date
        run: echo "year=$(date +'%Y')" >> $GITHUB_OUTPUT

      - name: Create App Token
        uses: actions/create-github-app-token@v1
        id: app-token
        with:
          app-id: ${{ vars.APP_ID }}
          private-key: ${{ secrets.APP_TOKEN }}

      - name: Check Out Repo
        uses: actions/checkout@v4
        with:
          token: ${{ steps.app-token.outputs.token }}
          ref: nightly

      - name: Update Copyright
        run: sed -i -E 's/(Copyright \(c\) ).+( meisnate12)/\1${{ steps.date.outputs.year }}\2/' LICENSE

      - name: Check Diff
        id: verify_diff
        run: |
          git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT

      - name: Commit & Push Changes
        if: steps.verify_diff.outputs.changed == 'true'
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"
          git add -A
          git commit -m "Copyright updated to ${{ steps.date.outputs.year }}" -a
          git push origin nightly

      - name: Discord Failure Notification
        uses: Kometa-Team/discord-notifications@master
        if: failure()
        with:
          webhook_id_token: ${{ secrets.BUILD_WEBHOOK }}
          message: ${{ vars.BUILD_FAILURE_ROLE }}
          title: "${{ vars.REPO_NAME }}: ${{ vars.TEXT_COPYRIGHT }}"
          url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }}
          color: ${{ vars.COLOR_FAILURE }}
          username: ${{ vars.BOT_NAME }}
          avatar_url: ${{ vars.BOT_IMAGE }}
          author: ${{ vars.GIT_NAME }}
          author_icon_url: ${{ vars.GIT_IMAGE }}