#!/bin/bash

# 檢查是否提供了目錄參數
if [ $# -eq 0 ]; then
    echo "使用方法: $0 <目錄路徑>"
    echo "範例: $0 ./my_folder"
    exit 1
fi

TARGET_DIR="$1"

# 檢查目錄是否存在
if [ ! -d "$TARGET_DIR" ]; then
    echo "錯誤：目錄 '$TARGET_DIR' 不存在"
    exit 1
fi

echo "正在檢查目錄: $TARGET_DIR"
echo "========================================"

# 建立臨時檔案來儲存檔案名
TEMP_FILE=$(mktemp)

# 找出所有檔案（包含子目錄），只取檔案名（不含路徑和副檔名）
find "$TARGET_DIR" -type f -exec basename {} \; | \
    sed 's/\.[^.]*$//' | \
    tr '[:upper:]' '[:lower:]' | \
    sort > "$TEMP_FILE"

# 檢查重複
DUPLICATES=$(sort "$TEMP_FILE" | uniq -d)

if [ -z "$DUPLICATES" ]; then
    echo "✓ 沒有發現重複的檔案名"
    rm "$TEMP_FILE"
    exit 0
else
    echo "✗ 發現重複的檔案名："
    echo ""

    # 對每個重複的名稱，顯示所有對應的完整路徑
    echo "$DUPLICATES" | while read -r dup_name; do
        echo "重複名稱: $dup_name"
        find "$TARGET_DIR" -type f | while read -r filepath; do
            filename=$(basename "$filepath")
            name_without_ext=$(echo "$filename" | sed 's/\.[^.]*$//' | tr '[:upper:]' '[:lower:]')
            if [ "$name_without_ext" = "$dup_name" ]; then
                echo "  → $filepath"
            fi
        done
        echo ""
    done

    TOTAL_DUPS=$(echo "$DUPLICATES" | wc -l)
    echo "總共發現 $TOTAL_DUPS 組重複檔案名"
    rm "$TEMP_FILE"
    exit 1
fi
