#!/usr/bin/env bash {{- if (ne .host.distro.family "windows") }} {{- includeTemplate "universal/profile" }} {{- includeTemplate "universal/logg" }} ### Ensure node is installed if ! command -v node > /dev/null; then if command -v brew; then logg 'Installing `node` via Homebrew' brew install node else logg '`brew` is unavailable. Cannot use it to perform a system installation of node.' fi else logg '`node` is available' fi ### Ensure volta is installed if ! command -v volta > /dev/null; then if command -v brew > /dev/null; then logg 'Installing `volta` via `brew`' brew install volta fi if [ -z "$VOLTA_HOME" ]; then volta setup fi if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" else logg warn 'Could not find `~/.bashrc` to source the results of `volta setup` from' fi export PATH="$VOLTA_HOME/bin:$PATH" logg 'Installing `node` via `volta`' volta install node else if ! node --version > /dev/null; then volta install node fi fi ### Ensure zx is installed if ! command -v zx > /dev/null; then if command -v volta > /dev/null; then logg 'Installing `zx` via `volta`' volta install zx else logg '`volta` is missing' fi else logg '`zx` is already installed' fi ### Ensure recent version of Node.js is being used if command -v volta > /dev/null; then if ! test "$(node --version | sed 's/^v//' | awk '{print $1}' | awk -F'.' ' ( $1 > 15) ')"; then volta install node@latest else logg info 'Node.js appears to meet the minimum version requirements' fi else logg warn 'Volta is not installed' fi {{ end -}}