File: //var/packages/Spreadsheet/scripts/set-nodejs-env
#!/bin/sh
TOTAL_MEM=$(/bin/awk '/MemTotal/ { print $2 }' /proc/meminfo)
if [ -n "$TOTAL_MEM" ]; then
MEM=$(/bin/python -c "print('%d' % max(round($TOTAL_MEM * 0.8 / 1024), 1024))")
/bin/grep -w lm -q /proc/cpuinfo
IS_64BIT=$?
if [ "$MEM" -ge 2048 ] && [ "$IS_64BIT" -ne 0 ]; then
# should be less than 2048
MEM=2000
fi
V8_OPTIONS="--max_old_space_size=$MEM"
fi
CPU_COUNT="$(( $(/usr/bin/nproc --all) ))"
CPU_COUNT="$(( CPU_COUNT / 4))"
CPU_COUNT="$(( CPU_COUNT > 20 ? 20 : CPU_COUNT ))"
CPU_COUNT="$(( CPU_COUNT < 4 ? 4 : CPU_COUNT ))"
SYNO_PRODUCT="$(/bin/get_key_value /etc.defaults/synoinfo.conf syno_product)"
echo \
"NODE_PACKAGE=Node.js_v20
V8_OPTIONS=$V8_OPTIONS
UV_THREADPOOL_SIZE=$CPU_COUNT
SYNO_PRODUCT=$SYNO_PRODUCT
" > /var/packages/Spreadsheet/etc/nodejs_environment