name: Date-Check

on:
  schedule:
    # Run at noon UTC every 1st of the month
    - cron: '00 12 01 * *'

  # Allow manually starting the workflow
  workflow_dispatch:

jobs:
  date-check:
    if: github.repository == 'rust-lang/rustc-dev-guide'
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Ensure Rust is up-to-date
        run: |
          rustup update stable

      - name: Run `date-check`
        working-directory: ci/date-check
        run: |
          cargo run -- ../../src/ > ../../date-check-output.txt

      - name: Open issue
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');

            const rawText = fs.readFileSync('date-check-output.txt', { encoding: 'utf8' });
            const title = rawText.split('\n')[0];
            if (title != 'empty') {
                const body = rawText.split('\n').slice(1).join('\n');
                github.rest.issues.create({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  title,
                  body,
                });
                console.log('Opened issue.');
            } else {
                console.log('No dates to triage.');
            }
