44bdcd9946
-Older versions of nodejs will throw all kinds of different errors depending on which version you are running. This check should hopefully prevent confusion about why the explorer is not working by giving a clearer error message before the explorer starts
67 lines
2.4 KiB
Bash
67 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
readonly MIN_NODE_VERSION_MAJOR="14"
|
|
readonly MIN_NODE_VERSION_MINOR="13"
|
|
readonly MIN_NODE_VERSION_REVISION="1"
|
|
readonly NONE="\033[00m"
|
|
readonly RED="\033[01;31m"
|
|
|
|
begins_with() { case $2 in "$1"*) true;; *) false;; esac; }
|
|
error_message() { echo "${RED}Error:${NONE} $1" && echo && exit 1; }
|
|
|
|
# Get the nodejs version
|
|
NODE_VERSION="$(node -v)"
|
|
NODE_VERSION_MAJOR="0"
|
|
NODE_VERSION_MINOR="0"
|
|
NODE_VERSION_REVISION="0"
|
|
|
|
# Check if the nodejs version # is blank or a very long string as that would usually indicate a problem
|
|
if [ "${#NODE_VERSION}" -gt 0 ] && [ "${#NODE_VERSION}" -lt 16 ]; then
|
|
# Remove the 'v' from the beginning of the version string
|
|
if begins_with "v" "${NODE_VERSION}"; then
|
|
NODE_VERSION=$(echo "${NODE_VERSION}" | cut -c2-${#NODE_VERSION})
|
|
fi
|
|
|
|
# Split node version string into major, minor and revision
|
|
NODE_VERSION_MAJOR="$(echo $NODE_VERSION | cut -d'.' -f1)"
|
|
NODE_VERSION_MINOR="$(echo $NODE_VERSION | cut -d'.' -f2)"
|
|
NODE_VERSION_REVISION="$(echo $NODE_VERSION | cut -d'.' -f3)"
|
|
fi
|
|
|
|
# Check if the installed nodejs is an older version than supported by the explorer
|
|
if !([ "${NODE_VERSION_MAJOR}" -gt "${MIN_NODE_VERSION_MAJOR}" ] || ([ "${NODE_VERSION_MAJOR}" -eq "${MIN_NODE_VERSION_MAJOR}" ] && ([ "${NODE_VERSION_MINOR}" -gt "${MIN_NODE_VERSION_MINOR}" ] || ([ "${NODE_VERSION_MINOR}" -eq "${MIN_NODE_VERSION_MINOR}" ] && [ "${NODE_VERSION_REVISION}" -ge "${MIN_NODE_VERSION_REVISION}" ])))); then
|
|
error_message "Please install an updated version of nodejs.\n\nInstalled: $NODE_VERSION\nRequired: $MIN_NODE_VERSION_MAJOR.$MIN_NODE_VERSION_MINOR.$MIN_NODE_VERSION_REVISION"
|
|
fi
|
|
|
|
## Check if new module directory exists
|
|
#if [ ! -d ./node_modules/change_to_module_dir_name ]; then
|
|
# # Install updated packages
|
|
# npm update
|
|
#fi
|
|
|
|
# Check if an argument was passed into this script
|
|
if [ -n "${1}" ]; then
|
|
# Determine which argument was passed
|
|
case "${1}" in
|
|
"pm2")
|
|
# Check if pm2 is installed
|
|
if [ -z "$(which pm2)" ]; then
|
|
# Install pm2
|
|
npm install pm2@latest -g
|
|
fi
|
|
;;
|
|
"forever")
|
|
# Check if forever is installed
|
|
if [ -z "$(which forever)" ]; then
|
|
# Install forever
|
|
npm install forever -g
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Ensure that selected theme is properly installed
|
|
sh ./scripts/sass_theme_reader.sh
|
|
|
|
# Run sass module to generate minified css from scss file
|
|
./node_modules/.bin/sass --no-source-map --style=compressed ./public/css/style.scss ./public/css/style.min.css |