#!/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() {
     FIRST_BOOT_DEB_PATH=$DI_INSTALL_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
        # 设置区域格式
        set_region_fomat

        # 设置时间同步
        enable_ntp

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

        # 设置冰点还原
        enable_ice_restore

        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"
            crypt_log "/var/log/deepin-installer"
        fi
    fi
}

main > $LOG_FILE 2>&1
