#! /bin/sh

PREREQ=""
DESCRIPTION="Installing init debs..."

prereqs()
{
       echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
       prereqs
       exit 0
       ;;
esac

. /scripts/casper-functions

log_begin_msg "$DESCRIPTION"

if [ -d /root/cdrom/patches ];then
        patch_num=$(ls /root/cdrom/patches/*.kpb | wc -l)
        if [ "x$patch_num" = "x1" ];then
                patch_name=$(find /root/cdrom/patches/*.kpb)
                mkdir -p /root/mnt/
                mount $patch_name /root/mnt/
        else
                echo "Not expected kpb file, exit ..."
		exit 0
        fi
fi
# 自动检测最新本地源
LOCAL_REPO=$(ls -d /root/mnt/kylin-upgrade-deb* 2>/dev/null | sort -V | tail -n 1)

if [ -z "$LOCAL_REPO" ]; then
    echo "错误: 未找到本地源目录"
    exit 0
fi
if [ ! -f /root/mnt/upgrade-list-init ];then
	exit 0
else
	update_list=$(cat /root/mnt/upgrade-list-init)
	if [ -z "$update_list" ];then
		exit 0
	fi
fi

use_plymouth=false
if command -v plymouth >/dev/null && plymouth --ping; then
        use_plymouth=true
fi

plymouth message --text="将进行安装盘环境配置，过程中可能会变暗，请耐心等待..."

#sleep 5
#plymouth message --text="正在关闭开机动画...5"
#sleep 1
#plymouth message --text="正在关闭开机动画...4"
#sleep 1
#plymouth message --text="正在关闭开机动画...3"
#sleep 1
#plymouth message --text="正在关闭开机动画...2"
#sleep 1
#plymouth message --text="正在关闭开机动画...1"
#sleep 1
#
#plymouth quit 2>/dev/null || true
#
## 确保 Plymouth 完全停止
#pkill -9 plymouth 2>/dev/null || true

echo "使用本地源: $LOCAL_REPO"

mv /root/etc/apt/sources.list /root/etc/apt/sources.list.orig 2>/dev/null || true

# 配置本地源

codename=$(ls ${LOCAL_REPO}/upgrade-pool/dists/)

REAL_LOCAL_REPO="${LOCAL_REPO#/root}"

cat > /root/etc/apt/sources.list << EOF
# 本地APT源
deb [trusted=yes] file://$REAL_LOCAL_REPO/upgrade-pool ${codename} main restricted universe multiverse
EOF

# 禁用其他源
find /root/etc/apt/sources.list.d -name "*.list" -exec mv {} {}.disabled \; 2>/dev/null || true
# 配置APT保持旧配置文件
mkdir -p /root/etc/apt/apt.conf.d
cat > /root/etc/apt/apt.conf.d/99keep-old-conf << EOF
DPkg::options {
   "--force-confdef";
   "--force-confold";
};
EOF

mount -n -o bind /sys /root/sys
mount -n -o bind /proc /root/proc
mount -n -o bind /dev /root/dev
mount -n -o bind /dev /root/dev/pts
echo "111111111111111 $(date)"
# 更新APT
chroot /root apt-get update || true
chroot /root env update_list="$(cat /root/mnt/upgrade-list-init)" /bin/bash -c 'apt-get install -y $update_list'

sync

umount /root/dev/pts
umount /root/dev
umount /root/proc
umount /root/sys
umount /root/mnt

rm /root/etc/apt/apt.conf.d/99keep-old-conf
for f in /root/etc/apt/sources.list.d/*.list.disabled;do
        [ -f "$f" ] && mv "$f" "${f%.disabled}"
done
mv /root/etc/apt/sources.list.orig /root/etc/apt/sources.list 2>/dev/null || true

plymouth message --text="安装盘环境配置完成"
sleep 3
sync

if "$use_plymouth"; then
        # plymouth hide-message does not work yet
        plymouth display-message --text=""
fi

echo "22222222222222222 $(date)"
log_end_msg
