#!/usr/bin/env bash
#
# Run "pnpm install" with flags appropriate to the environment (local
# development vs build system). The install is always run within the current
# directory.
#
# Usage: pnpm_install.sh [optional extra flags]

set -euo pipefail

pnpm_flags=(
	# Do not execute install scripts
	# TODO: check if build works properly with this enabled
	# --ignore-scripts

	# Check if existing node_modules are valid
	# TODO: determine if this is necessary
	# --check-files
)

if [[ -n ${CI:-} ]]; then
	pnpm_flags+=(
		# Install dependencies from lockfile, ensuring builds are fully
		# reproducible
		--frozen-lockfile
		# Disable interactive prompts.
		--reporter append-only
	)
fi

# Append whatever is specified on the command line
pnpm_flags+=("$@")

echo "+ pnpm install ${pnpm_flags[*]}"
pnpm install "${pnpm_flags[@]}"
