From 85acaee0f4748169b585c0ef67e6ee5cb7376af5 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 13 Mar 2025 11:37:43 +0100 Subject: [PATCH] feat: Validate configured RAM (#197) --- src/reset.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/reset.sh b/src/reset.sh index 7b4fccb..2fdec8a 100644 --- a/src/reset.sh +++ b/src/reset.sh @@ -100,8 +100,12 @@ fi RAM_SPARE=500000000 RAM_AVAIL=$(free -b | grep -m 1 Mem: | awk '{print $7}') RAM_TOTAL=$(free -b | grep -m 1 Mem: | awk '{print $2}') + +if [[ -z ${RAM_SIZE//[0-9]} ]]; then + [ "$RAM_SIZE" -lt "130" ] && RAM_SIZE="${RAM_SIZE}G" || RAM_SIZE="${RAM_SIZE}M" +fi + RAM_SIZE=$(echo "${RAM_SIZE^^}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g') -[[ -z ${RAM_SIZE//[0-9]} ]] && [ "$RAM_SIZE" -lt "130" ] && RAM_SIZE="${RAM_SIZE}G" ! numfmt --from=iec "$RAM_SIZE" &>/dev/null && error "Invalid RAM size: $RAM_SIZE" && exit 16 RAM_WANTED=$(numfmt --from=iec "$RAM_SIZE") [ "$RAM_WANTED" -lt "136314880 " ] && error "Invalid RAM size: $RAM_SIZE" && exit 16 @@ -131,6 +135,8 @@ fi # Check memory +[[ "${FS,,}" == "zfs" ]] && RAM_CHECK="N" + if [[ "$RAM_CHECK" != [Nn]* ]] && (( (RAM_WANTED + RAM_SPARE) > RAM_AVAIL )); then error "Your configured RAM_SIZE of $WANTED_GB GB is too high for the $AVAIL_GB GB of memory available, please set a lower value." exit 17