[Fix] default_packages: work when the file lacks a trailing newline

Fixes #1995.
This commit is contained in:
Jordan Harband
2019-02-02 13:45:11 -08:00
parent 5c117e6ab3
commit db19450caa
3 changed files with 33 additions and 4 deletions

10
nvm.sh
View File

@@ -3495,12 +3495,18 @@ nvm() {
}
nvm_get_default_packages() {
if [ -f "${NVM_DIR}/default-packages" ]; then
local NVM_DEFAULT_PACKAGE_FILE="${NVM_DIR}/default-packages"
if [ -f "${NVM_DEFAULT_PACKAGE_FILE}" ]; then
local DEFAULT_PACKAGES
DEFAULT_PACKAGES=''
# Read lines from $NVM_DIR/default-packages
local line
# ensure a trailing newline
WORK=$(mktemp -d) || exit $?
trap "rm -rf '$WORK'" EXIT
# shellcheck disable=SC1003
sed -e '$a\' "${NVM_DEFAULT_PACKAGE_FILE}" > "${WORK}/default-packages"
while IFS=' ' read -r line; do
# Skip empty lines.
[ -n "${line-}" ] || continue
@@ -3517,7 +3523,7 @@ nvm_get_default_packages() {
esac
DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} "
done < "${NVM_DIR}/default-packages"
done < "${WORK}/default-packages"
echo "${DEFAULT_PACKAGES}" | xargs
fi
}