#!/usr/bin/env bash

ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0
DEBUGMODE=no

[[ -d /usr/lib/ublinux ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; }
SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@"

SYSCONF="${ROOTFS}${SYSCONF}"

exec_statemode(){
    ## Setting state mode
    STATE_MODE=$(cmdline_value ub.mode)
    STATE_HOME=$(cmdline_value ub.home)
    if [[ ${STATE_MODE} =~ ^"changes"$ ]]; then
    ## Полное сохранение ub.mode=changes
	sed -e '$a\SYSTEMBOOT_STATEMODE=changes' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    elif [[ ${STATE_MODE} =~ ^("toxzm"|"machines")$ ]]; then
    ## Сохранение в модуль ub.mode=toxzm ub.mode=machines
	sed -e '$a\SYSTEMBOOT_STATEMODE=module' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    elif [[ ${STATE_MODE} == "" && ${STATE_HOME} == "" ]]; then
    ## Полная песочница RAM ub.mode= ; ub.home=
	sed -e '$a\SYSTEMBOOT_STATEMODE=sandbox' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    elif [[ ${STATE_MODE} == "" && ${STATE_HOME} =~ ^"/" ]]; then
    ## Песочница с сохранением профиля пользователя ub.mode= ; ub.home=/ublinux-data/homes
	sed -e '$a\SYSTEMBOOT_STATEMODE=sandbox_ram_home' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    elif [[ ${STATE_MODE} == "clear" && ${STATE_HOME} == "" ]]; then
    ## Полная песочница HDD ub.mode=clear ; ub.home=
	sed -e '$a\SYSTEMBOOT_STATEMODE=sandbox_hdd' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    elif [[ ${STATE_MODE} == "clear" && ${STATE_HOME} =~ ^"/" ]]; then
    ## Полная песочница HDD с сохранением профиля пользователя ub.mode=clear ; ub.home=
	sed -e '$a\SYSTEMBOOT_STATEMODE=sandbox_hdd_home' -e '/SYSTEMBOOT_STATEMODE=.*/d' -i ${SYSCONF}/config
    fi
}


################
##### MAIN #####
################

    # Если файл подключен как ресурс с функциями, то выйти
    return 0 2>/dev/null && return 0

    exec_statemode $@
