#!/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