blob: 51e6c8089eb936b0fca7d26a163f979716bddd1b [file] [log] [blame] [raw]
#!/bin/bash
set -e
OUT="$1"
find_node() {
local NODE="${NODE_DIR}/bin/node"
local CE_NODE="/opt/compiler-explorer/node/bin/node"
local SYS_NODE="$(which node 2>/dev/null)"
local SYS_NODEJS="$(which nodejs 2>/dev/null)"
if [[ -x "${NODE}" ]]; then
echo "${NODE}"
elif [[ -x "${CE_NODE}" ]]; then
echo "${CE_NODE}"
elif [[ -x "${SYS_NODE}" ]]; then
echo "${SYS_NODE}"
elif [[ -x "${SYS_NODEJS}" ]]; then
echo "${SYS_NODEJS}"
else
>&2 echo "Unable to find a node"
fi
}
NODE=$(find_node)
NODE_VERSION_USED=8
NODE_VERSION=$(${NODE} --version)
NODE_MAJOR_VERSION=$(echo ${NODE_VERSION} | cut -f1 -d. | sed 's/^v//g')
if [[ ${NODE_MAJOR_VERSION} -lt ${NODE_VERSION_USED} ]]; then
>&2 echo Compiler Explorer needs node v${NODE_VERSION_USED}.x, but ${NODE_VERSION} was found.
>&2 echo Visit https://nodejs.org/ for installation instructions
>&2 echo To configure where we look for node, set NODE_DIR to its installation base
exit 1
fi
if [[ ${NODE_MAJOR_VERSION} -gt ${NODE_VERSION_USED} ]]; then
>&2 echo Compiler Explorer needs node v${NODE_VERSION_USED}.x, but ${NODE_VERSION} was found.
>&2 echo The higher node version might work but it has not been tested.
fi
echo ${NODE} > ${OUT}