From 92b4bfc383d030ea83d383cccc995d6bbf2ac69d Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 13 Mar 2025 11:35:08 +0100 Subject: [PATCH] feat: Validate configured RAM (#920) --- src/reset.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/reset.sh b/src/reset.sh index 817ac45..9113c2b 100644 --- a/src/reset.sh +++ b/src/reset.sh @@ -107,8 +107,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 @@ -130,6 +134,8 @@ echo # Check memory +[[ "${FS,,}" == "zfs" ]] && RAM_CHECK="N" + if [[ "$RAM_CHECK" != [Nn]* ]]; then if (( (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."