#!/bin/bash
#由于可配置无后配置，在此执行必须进入真实系统执行的脚本
## 初始化环境变量
source /usr/share/deepin-installer/tools/scripts/init_environment.sh
## 导入函数库
source $DI_INSTALL_TOOLS_DIR_ENV/scripts/function_include.sh
## 初始化日志
LOG_FILE="/var/log/deepin-installer/deepin-installer-extra.log"
init_log $LOG_FILE

sleep 1

exec_first_boot_jobs(){
    JOBS_PATH=$DI_INSTALL_TOOLS_DIR_ENV/hooks/first_boot
    if [ -d $JOBS_PATH ]; then
        jobs=`ls $JOBS_PATH/* | sort`
        for job in $jobs
        do
            /bin/bash $job
        done
    fi
}

install_first_boot_deb() {
    FIRST_BOOT_DEB_PATH=$DI_HOME_DIR_ENV/first_boot_deb
    # 运行此脚本的时候本地仓库已经删除，使用dpkg安装定制包。
    dpkg -i --force-confnew $FIRST_BOOT_DEB_PATH/*.deb || warning "install first boot deb failed"
}

## 主函数
main() {
    local exec_extra=$(installer_get "DI_EXEC_EXTRA")
    if [ "x$exec_extra" = "xtrue" ]; then
        install_first_boot_deb
        #更新initrd,因为live环境通过chroot更新initrd存在swap分区的uuid未写入的情况，所以在这里执行。
        /usr/sbin/update-initramfs -u
        installer_set DI_EXEC_EXTRA "false"
        
        # 设置时区、系统时间、硬件时间、ntp时间同步
        set_all_times_once

        exec_first_boot_jobs
         #没有后配置时deepin-install-extra.service才会自启动
         # 以下是没有后配置情况下的最后一步，卸载安装器必须放到最后
        if ! is_have_first_boot; then
            systemctl disable deepin-installer-extra
            apt-get -y purge deepin-installer || warning "uninstall deepin-installer failed"
        fi
    fi
}

main > $LOG_FILE 2>&1

main
