Files
fulpstation/tools/bootstrap/node
Nick 38091b4914 April TGU: Virologist is gone (#1200)
* Initial merge

* Map files

* dme mon ami

* Cult span renames

* updatepaths

* AltClick renamed to click_alt

* beefman hair color stuff

* bye bye beefman viro

* get_all_gear

* Updated mentor refresh verb

* bloodsucker rack atom_deconstruct

* removed LateInitialize from nanites machines

* brain trauama now calls parent on_lose

* readme

* greyscale fulp edit

* arrival sound fulp edit

* tgui routes fulp edit

* build.js fulp edit

* fulpui-patches

* Missed a couple of shuttles

* tgui files

* Map updates

* tgui tweaks and screenshots

* fixed typo

* halloween beacon texture

* Vault piggy banks

* beacon icon fr

* Selene cargo chat console

* selene labour shuttle

* Photobooths!

* Moved photobooth button on selene

* Theia updates

* Reset maps.txt

* Order consoles

* Ports TG's #82906, fixes plasma cutters

* Theia vault piggy bank

* CLICK_ACTION_SUCCESS for coffin alt clicking
2024-05-10 16:24:54 +02:00

74 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
# bootstrap/node
#
# Node-finding script for all `sh` environments, including Linux, MSYS2,
# Git for Windows, and GitHub Desktop. Invokable from CLI or automation.
#
# If a node.exe installed by `node_.ps1` is present, it will be used.
# Otherwise, this script requires a system `node` to be provided.
set -e
# Convenience variables
Bootstrap="$(dirname "$0")"
Cache="$Bootstrap/.cache"
if [ "$TG_BOOTSTRAP_CACHE" ]; then
Cache="$TG_BOOTSTRAP_CACHE"
fi
OldPWD="$PWD"
cd "$Bootstrap/../.."
. ./dependencies.sh # sets NODE_VERSION_LTS
cd "$OldPWD"
NodeVersion="$NODE_VERSION_LTS"
NodeFullVersion="node-v$NodeVersion-win-x64"
NodeDir="$Cache/$NodeFullVersion"
NodeExe="$NodeDir/node.exe"
is_vendored="1"
# If a bootstrapped Node is not present, search on $PATH.
if [ "$(uname)" = "Linux" ] || [ ! -f "$NodeExe" ]; then
if [ "$TG_BOOTSTRAP_NODE_LINUX" ]; then
NodeFullVersion="node-v$NodeVersion-linux-x64"
NodeDir="$Cache/$NodeFullVersion/bin"
NodeExe="$NodeDir/node"
if [ ! -f "$NodeExe" ]; then
mkdir -p "$Cache"
Archive="$(realpath "$Cache/node-v$NodeVersion.tar.gz")"
curl "https://nodejs.org/download/release/v$NodeVersion/$NodeFullVersion.tar.gz" -o "$Archive"
(cd "$Cache" && tar xf "$Archive")
fi
elif command -v node >/dev/null 2>&1; then
NodeExe="node"
is_vendored="0"
else
echo
if command -v apt-get >/dev/null 2>&1; then
# Ubuntu advice
echo "Please install Node using your system's package manager:"
echo " sudo apt-get install nodejs"
elif uname | grep -q MSYS; then
# MSYS2 (not packaged) or Git for Windows advice
echo "Please run bootstrap/node.bat instead of bootstrap/node once"
echo "to install Node automatically, or install it from https://nodejs.org/"
elif command -v pacman >/dev/null 2>&1; then
# Arch advice
echo "Please install Node using your system's package manager:"
echo " sudo pacman -S nodejs"
else
# Generic advice
echo "Please install Node from https://nodejs.org/ or using your system's package manager."
fi
echo
exit 1
fi
fi
# Invoke Node with all command-line arguments
if [ "$is_vendored" = "1" ]; then
PATH="$(readlink -f "$NodeDir"):$PATH"
echo "Using vendored Node $("$NodeExe" --version)"
else
echo "Using system-wide Node $("$NodeExe" --version)"
fi
exec "$NodeExe" "$@"