#!/bin/bash

set -e

#由于可配置无后配置，在此执行必须进入真实系统执行的脚本
## 初始化环境变量
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 -e $job
        done
    fi
}

install_first_boot_deb() {
    # 使用apt安装所有的deb包。在开始安装之前，先等待dpkg锁释放，一次等待5秒，最多等待20次
    apt_install_all_deb_with_wait $DI_HOME_DIR_ENV/first_boot_deb || warning "install first boot deb failed !"
}

## 主函数
main() {
    local exec_extra=$(installer_get "DI_EXEC_EXTRA")
    if [ "x$exec_extra" = "xtrue" ]; then
        # 设置时间同步
        enable_ntp

        install_first_boot_deb
        #更新initrd,因为live环境通过chroot更新initrd存在swap分区的uuid未写入的情况，所以在这里执行。
        /usr/sbin/update-initramfs -u

        exec_first_boot_jobs

        installer_set DI_EXEC_EXTRA "false"

        # 记录系统安装日期
        DI_INSTALL_FINISH_TIME=$(date '+%Y-%m-%d %H:%M:%S UTC%:::z')
        installer_set DI_INSTALL_FINISH_TIME "$DI_INSTALL_FINISH_TIME"

         #没有后配置时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

crypt_log "/var/log/deepin-installer"