#!/ventoy/busybox/sh

. /ventoy/hook/ventoy_hook_lib.sh

change_var_value() {
    local vfile=$1
    local vkey=$2
    local vVal=$3
    local quote=$4
    local vline
    
    if [ $quote -eq 0 ]; then
        vline="$vkey = $vVal"
    else
        vline="$vkey = \"$vVal\""
    fi
    
    if grep -q -m1 "^$vkey[[:space:]]*=" $vfile; then
        sed "s#^$vkey[[:space:]]*=.*#$vline#g" -i $vfile
    else
        echo "$vline" >> $vfile
    fi
}

setting_script_process() {
    local sfile=$1
    local vItem
    local vB64Item
    
    vItem=$(grep '^language[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        change_var_value $sfile 'select_language_default_locale' "$vItem" 0
    fi
    
    vItem=$(grep '^timezone[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        change_var_value $sfile 'timezone_default' "$vItem" 0
    fi
    
    vItem=$(grep '^hostname[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        change_var_value $sfile 'system_info_default_hostname' "$vItem" 1
        change_var_value $sfile 'DI_HOSTNAME' "$vItem" 1
    fi
    
    vItem=$(grep '^root_password[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        vB64Item=$(echo -n "$vItem" | base64)
        change_var_value $sfile 'system_info_default_root_password' "$vB64Item" 1
        change_var_value $sfile 'DI_ROOTPASSWORD' "$vB64Item" 1
    fi
    
    vItem=$(grep '^default_username[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        change_var_value $sfile 'system_info_default_username' "$vItem" 1
        change_var_value $sfile 'DI_USERNAME' "$vItem" 1
    fi
    
    vItem=$(grep '^default_password[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        change_var_value $sfile 'system_info_default_password' "$vItem" 1
        change_var_value $sfile 'DI_PASSWORD' "$vItem" 1
    fi
    
    vItem=$(grep '^install_disk[[:space:]]*=' /ventoy/autoinstall | awk  '{print $3}')
    if [ -n "$vItem" ]; then
        echo "DI_FULLDISK_MULTIDISK_DEVICE = $vItem" >> $sfile
        echo "DI_ROOTDISK = $vItem" >> $sfile
        echo "DI_BOOTLOADER = $vItem" >> $sfile
    fi
    
    change_var_value $sfile 'skip_virtual_machine_page' 'true' 0
    change_var_value $sfile 'skip_select_language_page' 'true' 0
    change_var_value $sfile 'skip_select_language_page_on_first_boot' 'true' 0
    change_var_value $sfile 'skip_system_keyboard_page' 'true' 0
    change_var_value $sfile 'skip_system_info_page' 'true' 0
    change_var_value $sfile 'skip_qr_code_system_info_page' 'true' 0
    change_var_value $sfile 'skip_timezone_page' 'true' 0
    change_var_value $sfile 'skip_partition_page' 'true' 0
    change_var_value $sfile 'system_info_password_validate_required' '0' 0
    change_var_value $sfile 'system_info_password_strong_check' 'false' 0
    change_var_value $sfile 'partition_do_auto_part' 'true' 0
    change_var_value $sfile 'system_info_disable_license' 'true' 0
    change_var_value $sfile 'system_info_disable_experience' 'true' 0
    change_var_value $sfile 'system_info_disable_privacy_license' 'true' 0
    
    #filesystem.squashfs search ini
    #first_page_state=0,表示不跳过首页,展示首页让用户自己选择
    #first_page_state=1,表示跳过首页,并且自动点击一键安装
    #first_page_state=2,表示跳过首页,并且自动点击自定义安装
    #first_page_state=3,表示跳过首页,并且直接以全盘安装方式自动安装
    change_var_value $sfile 'first_page_state' '3' 0
}

update_settings() {
    local script=$1
    local newscript
    
    echo "update_settings for $script ..."
    
    newscript=$(basename $script)
    cp -a $script /ventoy/vini_${newscript}
    setting_script_process /ventoy/vini_${newscript}
    
    rm -f $script
    cp -a /ventoy/vini_${newscript} $script
}

sh /ventoy/hook/common/auto_install_varexp.sh  /ventoy/autoinstall

update_settings /root/usr/share/deepin-installer/resources/default_settings.ini

ls -1 /root/usr/share/deepin-installer/resources/override/ | while read line; do
    update_settings /root/usr/share/deepin-installer/resources/override/$line
done

ls -1 /root/usr/share/deepin-installer/resources/oem/ | while read line; do
    update_settings /root/usr/share/deepin-installer/resources/oem/$line
done