#!/bin/sh set -e OUT="$1" find_node() { NODE="${NODE_DIR}/bin/node" CE_NODE="/opt/compiler-explorer/node/bin/node" SYS_NODE="$(which node 2>/dev/null || true)" SYS_NODEJS="$(which nodejs 2>/dev/null || true)" if test -x "${NODE}" -a -n "${NODE_DIR}"; then echo "${NODE}" elif test -x "${CE_NODE}"; then echo "${CE_NODE}" elif test -x "${SYS_NODE}"; then echo "${SYS_NODE}" elif test -x "${SYS_NODEJS}"; then echo "${SYS_NODEJS}" else echo >&2 "Unable to find a node" fi } NODE="$(find_node)" NODE_MIN_VERSION=18 NODE_VERSION_USED=20 NODE_VERSION=$(${NODE} --version) NODE_MAJOR_VERSION=$(echo "${NODE_VERSION}" | cut -f1 -d. | sed 's/^v//g') if test "${NODE_MAJOR_VERSION}" -lt ${NODE_MIN_VERSION}; then echo >&2 "Compiler Explorer is known not to run with versions prior to v${NODE_MIN_VERSION}" echo >&2 "Visit https://nodejs.org/ for installation instructions for newer versions" echo >&2 "To configure where we look for node, set NODE_DIR to its installation base" exit 1 fi if test ${NODE_VERSION_USED} -ne "${NODE_MAJOR_VERSION}"; then echo >&2 "Warning: Compiler Explorer is only tested against v${NODE_VERSION_USED}.x, but v${NODE_MAJOR_VERSION} was found." echo >&2 "Note that you might find issues if you decide to keep this version" echo >&2 "Visit https://nodejs.org/ for installation instructions for the required version" echo >&2 "To configure where we look for node, set NODE_DIR to its installation base" fi echo "${NODE}" >"${OUT}"