#!/bin/sh

set -ex

BEFORE="./before.tmp"
AFTER="./after.tmp"

cleanup () { rm -f "${BEFORE}" "${AFTER}"; }
die () { echo "$@" ; cleanup ; exit 1; }

typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}"
env | grep -v PATH= | grep -v IFS= | grep -v NVM_ | sort >> "${BEFORE}"

set +e # TODO: fix
\. ../../nvm.sh
set -e

type nvm > /dev/null 2>&1 || die "nvm not loaded"

nvm unload

typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}"
env | grep -v PATH= | grep -v IFS= | sort >> "${AFTER}"

! type nvm > /dev/null 2>&1 || die "nvm not unloaded"

DIFF="$(diff "${BEFORE}" "${AFTER}" ||:)"
[ -z "${DIFF}" ] || die "function pollution found: ${DIFF}"

cleanup