Unverified Commit 92b4bfc3 authored by Kroese's avatar Kroese Committed by GitHub
Browse files

feat: Validate configured RAM (#920)

parent 092ed230
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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."