You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

29 lines
967 B

#!/usr/bin/env bash
set -euo pipefail
RELEASE=$1
UMBREL_ROOT=$2
first_run=$3
# We add a 200MB offset becuase the 2GB Pi actually only has ~1.9GB of RAM
MIN_RAM=2000000
OFFSET=200000
LIMIT=$((MIN_RAM-OFFSET))
# Abort on low memory devices
memory="$(awk '/MemTotal/{printf "%d\n", $2}' /proc/meminfo)"
if ((memory<LIMIT)); then
if [[ "${first_run}" == "firstrun" ]]; then
cat <<EOF > "$UMBREL_ROOT"/statuses/update-status.json
{"state": "installing", "progress": 20, "description": "Checking device memory", "updateTo": "${RELEASE}"}
EOF
# Sleep for a few seconds so the user has been redirected to the update screen
sleep 10
memory_error="Sorry, this update isn't compatible with your device, it requires at least $((MIN_RAM/1000000))GB RAM."
echo "${memory_error}"
cat <<EOF > "$UMBREL_ROOT"/statuses/update-status.json
{"state": "failed", "progress": 100, "description": "${memory_error}", "updateTo": "${RELEASE}"}
EOF
fi
exit 1
fi