#!/bin/bash

ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0
DEBUGMODE=no

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

SYSCONF="${ROOTFS}/${SYSCONF}"
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/security; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null

exec_cgroup_quota(){
## Квоты на ресурсы, через cgroup2. Механизм systemd или напрямую cgroup
    if [[ -n ${CGROUP_QUOTA[@]} ]]; then
 	for ITEM_UNIT in "${!CGROUP_QUOTA[@]}"; do
 	    if [[ ! ${ITEM_UNIT} =~ ".service"$|".slice"$|".scope"$ ]]; then
 		USER_ID=$(id -u ${ITEM_UNIT})
 		[[ -n ${ITEM_UNIT} ]] && USER_SLICE="user-$(id -u ${USER_ID}).slice" || return 1
 		COMPAT_UNIT=${USER_SLICE}
	    else
		COMPAT_UNIT=${ITEM_UNIT}
	    fi
	    if readlink -fq ${ROOTFS}/usr/bin/init | grep -q "lib/systemd/systemd$"; then
		systemctl set-property --runtime ${COMPAT_UNIT} ${CGROUP_QUOTA[${ITEM_UNIT}]//,/ }
		systemctl daemon-reload
	    else
		true
	    fi
	done
    fi
}

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

    exec_cgroup_quota $@
