name: Prepare FFMPEG_BIN for bun install
description: >-
  Copies the system ffmpeg binary to a writable temp location and sets
  FFMPEG_BIN in the environment. ffmpeg-static's postinstall script checks
  whether a file already exists at FFMPEG_BIN; if it does and process.exit(0)
  is respected by the runtime, the CDN download is skipped entirely. If the
  runtime intercepts process.exit(0) and the download proceeds anyway, using
  a writable target prevents the EACCES failure that occurs when the
  destination is a system path like /usr/bin/ffmpeg.

runs:
  using: composite
  steps:
    - name: Copy ffmpeg to writable path
      shell: bash
      run: |
        FFMPEG=$(which ffmpeg 2>/dev/null || echo "")
        if [ -n "$FFMPEG" ]; then
          cp "$FFMPEG" "$RUNNER_TEMP/hf-ffmpeg"
        else
          # ffmpeg not pre-installed; write a stub so ffmpeg-static's postinstall
          # finds a file at FFMPEG_BIN and exits early (statSync check) without
          # attempting the CDN download. Jobs that need a real ffmpeg binary
          # install it via apt before calling this action.
          printf '#!/bin/sh\nexec ffmpeg "$@"\n' > "$RUNNER_TEMP/hf-ffmpeg"
        fi
        chmod +x "$RUNNER_TEMP/hf-ffmpeg"
        echo "FFMPEG_BIN=$RUNNER_TEMP/hf-ffmpeg" >> "$GITHUB_ENV"
