#!/bin/sh
#系统升级收集bug日志使用

if [ $(id -u) -eq 0 ]; then
    echo "当前执行权限是root，请使用普通权限来执行"
    exit 1
fi

echo "系统升级收集BUG日志使用..."

#建立收集的log目录
mkdir updaterlog
#记录一些基本信息
date >> updaterlog/base-info
dpkg -l | grep kylin-system-updater >> updaterlog/base-info
echo $1 >> updaterlog/base-info
echo "记录BUG产生时间（系统当前时间）以及升级相关的版本信息："
cat updaterlog/base-info

cp /etc/apt/sources.list updaterlog || true
cp -r /etc/apt/apt.conf.d updaterlog || true
cp -r /var/log/syslog updaterlog || true
cp -r /usr/share/kylin-update-desktop-config/config/ updaterlog || true
cp -r /var/log/kylin-system-updater/ updaterlog || true

#收集apt的日志
cp -r /var/log/apt updaterlog || true
cp -r /var/log/dpkg.log updaterlog || true
cp -r /var/log/kylin-unattended-upgrades/ updaterlog || true
cp -r ~/.config/kylin-background-upgrade/ updaterlog || true

#激活
cp -r ~/.log/kylin-activation/ updaterlog || true

#收集前端日志
cp -r ~/.log/kylin-update-frontend-notifysend.log updaterlog >/dev/null 2>&1 || true
cp -r ~/.log/ukui-control-center.log updaterlog >/dev/null 2>&1 || true 
cp -r ~/.log/ukui-notification-daemon.log updaterlog >/dev/null 2>&1 || true
cp -r ~/.config/ukui-session/ updaterlog >/dev/null 2>&1 || true
cp -r /tmp/kylin-updateresult-notify.log updaterlog >/dev/null 2>&1 || true

outputName="$(date +%m-%d,%H-%M-%S)-updaterLog.tar.gz"

#将所有的日志进行打包
tar -czvf updaterLog.tar.gz updaterlog >/dev/null

#删除收集的日志目录
rm -rf updaterlog

#将文件存储到桌面
if [ ! -d ~/桌面 ]; then
    mv updaterLog.tar.gz ~/Desktop/$outputName
    echo 输出位置：~/Desktop/$outputName
else
    mv updaterLog.tar.gz ~/桌面/$outputName
    echo 输出位置：~/桌面/$outputName
fi

echo "系统更新日志收集完毕..."
echo "\033[1;31m注意：\033[0m 1、请确保Bug复现的时间与执行脚本收集日志时间相近，以此能根据脚本执行时间快速定位到问题的相关日志..."
echo "       2、若Bug复现的时间与现在时间相差较远时，请手动输入大概复现时间。例如 report-updater-bug 月-日,时-分"
echo "请将桌面下\033[5;32;49;1m $outputName \033[0m日志文件提交到禅道... "