#!/bin/bash
#
# pearlog - pear_monitor / pear_updater 日志彩色查看工具
#
# 使用方法:
#   pearlog <日志文件>       实时查看日志，自动颜色标注
#   pearlog -h               显示此帮助信息
#
# 颜色规则:
#   ERROR  - 红色加粗      需要立即处理
#   CRIT   - 红底白字      严重问题
#   WARN   - 黄色           需要注意
#   NOTICE - 青色           值得关注
#   INFO   - 绿色           正常运行
#   DEBUG  - 灰色           调试信息

set -e

usage() {
    cat << 'USAGE'
用法: pearlog <日志文件路径>

  实时查看 pear_monitor / pear_updater 日志，按级别自动着色。

  示例:
    pearlog /data1/.pear/var/log/pear/pear_monitor.log
    pearlog /opt/openfog/etc/pear/pear_updater/pear_updater.log

  级别颜色:
    红色加粗   ERROR   需要立即处理
    红底白字   CRIT    严重问题
    黄色       WARN    需要注意
    青色       NOTICE  值得关注
    绿色       INFO    正常运行
    灰色       DEBUG   调试信息

  Ctrl+C 退出。
USAGE
    exit 0
}

# 参数处理
case "${1:-}" in
    -h|--help|"") usage ;;
esac

if [ ! -f "$1" ]; then
    echo "错误: 文件 '$1' 不存在" >&2
    exit 1
fi

# 输出文件路径提示
echo -e "\033[01;37m>>> pearlog: $1\033[0m"

tail -f "$1" | awk '
/ERROR\[/  {print "\033[01;31m" $0 "\033[0m"; next}
/CRIT\[/   {print "\033[41;37m" $0 "\033[0m"; next}
/WARN\[/   {print "\033[01;33m" $0 "\033[0m"; next}
/NOTICE\[/ {print "\033[01;36m" $0 "\033[0m"; next}
/INFO\[/   {print "\033[01;32m" $0 "\033[0m"; next}
/DEBUG\[/  {print "\033[02;37m" $0 "\033[0m"; next}
{print $0}
'

