#!/bin/bash

# ============================================
# 删除所有 .c 和 .h 文件的版权声明头部
# ============================================

GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m'

remove_header() {
    local file="$1"
    
    # 检查是否有版权声明
    if ! head -10 "$file" | grep -q "Copyright (C)"; then
        echo -e "${YELLOW}[跳过]${NC} $file (没有版权声明)"
        return 0
    fi
    
    # 查找头部结束位置：找以 */ 结尾且前面是 * = 的行
    local end_line=$(head -30 "$file" | grep -n "^ \*/" | head -1 | cut -d: -f1)
    
    if [ -z "$end_line" ]; then
        # 尝试找单独的 */
        end_line=$(head -30 "$file" | grep -n "\*/" | head -1 | cut -d: -f1)
    fi
    
    if [ -z "$end_line" ]; then
        echo -e "${RED}[错误]${NC} $file (找不到头部结束标记)"
        return 1
    fi
    
    # 删除头部
    local total_lines=$(wc -l < "$file")
    local remaining=$((total_lines - end_line))
    
    tail -n "$remaining" "$file" > "$file.tmp"
    mv "$file.tmp" "$file"
    
    echo -e "${GREEN}[删除]${NC} $file"
}

main() {
    echo -e "${GREEN}开始删除版权声明...${NC}"
    echo ""
    
    local files=$(find . -type f \( -name "*.c" -o -name "*.h" \) -not -path "./build/*" -not -path "./.git/*")
    
    local count=0
    for file in $files; do
        if remove_header "$file"; then
            ((count++))
        fi
    done
    
    echo ""
    echo -e "${GREEN}完成！共处理 $count 个文件${NC}"
}

main
