#!/bin/bash
# pr-close.sh - Close a pull request without merging on GitHub or Gitea
# Usage: pr-close.sh -n <pr_number> [-c <comment>]

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/detect-platform.sh"

# Parse arguments
PR_NUMBER=""
COMMENT=""

while [[ $# -gt 0 ]]; do
    case $1 in
        -n|--number)
            PR_NUMBER="$2"
            shift 2
            ;;
        -c|--comment)
            COMMENT="$2"
            shift 2
            ;;
        -h|--help)
            echo "Usage: pr-close.sh -n <pr_number> [-c <comment>]"
            echo ""
            echo "Options:"
            echo "  -n, --number   PR number (required)"
            echo "  -c, --comment  Comment before closing (optional)"
            echo "  -h, --help     Show this help"
            exit 0
            ;;
        *)
            echo "Unknown option: $1"
            exit 1
            ;;
    esac
done

if [[ -z "$PR_NUMBER" ]]; then
    echo "Error: PR number is required (-n)"
    exit 1
fi

detect_platform >/dev/null

if [[ "$PLATFORM" == "github" ]]; then
    if [[ -n "$COMMENT" ]]; then
        gh pr comment "$PR_NUMBER" --body "$COMMENT"
    fi
    gh pr close "$PR_NUMBER"
    echo "Closed GitHub PR #$PR_NUMBER"
elif [[ "$PLATFORM" == "gitea" ]]; then
    if [[ -n "$COMMENT" ]]; then
        tea pr comment "$PR_NUMBER" "$COMMENT" $(get_gitea_repo_args)
    fi
    tea pr close "$PR_NUMBER" $(get_gitea_repo_args)
    echo "Closed Gitea PR #$PR_NUMBER"
else
    echo "Error: Unknown platform"
    exit 1
fi
