#!/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
dpkg -l | grep kylin-activation >> updaterlog/base-info
dpkg -l | grep libkylin-activation >> updaterlog/base-info
dpkg -l | grep kylin-update-frontend >>updaterlog/base-info
dpkg -l | grep ukui-notification-daemon >>updaterlog/base-info
dpkg -l | grep ukui-session-manager >>updaterlog/base-info

echo $1 >> updaterlog/base-info
echo "记录BUG产生时间（系统当前时间）以及升级相关的版本信息："
cat updaterlog/base-info

cp /var/lib/kylin-system-updater/sources.list updaterlog/private-sources.list || true
cp /etc/apt/sources.list updaterlog/system-sources.list || 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/ updaterlog || true
cp -r /var/log/kylin-system-updater/ updaterlog || true
cp -r /var/lib/kylin-system-updater/json updaterlog/upgrade-data || true
cp -r /var/cache/kylin-system-updater/ updaterlog/upgrade-data || 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

#激活
mkdir -p updaterlog/kylin-activation
cp -r ~/.log/kylin-activation/ updaterlog/kylin-activation || true
cp /etc/LICENSE updaterlog/kylin-activation || true
cp /etc/.kyinfo updaterlog/kylin-activation || true

#P2P
cp -r /var/log/apt-p2p.log updaterlog || true

# 源更新管理器
cp -r /var/log/kylin-software-properties/ 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="updaterLog.tar.gz"

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

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

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

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