#!/bin/bash
# issue-close.sh - Close an issue on GitHub or Gitea
# Usage: issue-close.sh -i <issue_number> [-c <comment>]

set -e

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

# Parse arguments
ISSUE_NUMBER=""
COMMENT=""

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

if [[ -z "$ISSUE_NUMBER" ]]; then
    echo "Error: Issue number is required (-i)"
    exit 1
fi

# Detect platform and close issue
detect_platform

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