#!/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@latest
else
  if ! node --version > /dev/null; then
    volta install node@latest
  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
{{ end -}}