diff --git a/nvm.sh b/nvm.sh index 01585e3..7f734fe 100644 --- a/nvm.sh +++ b/nvm.sh @@ -284,12 +284,12 @@ nvm_ls_remote() { } nvm_checksum() { - if nvm_has "shasum"; then - checksum=$(shasum $1 | \awk '{print $1}') + if nvm_has "sha1sum"; then + checksum=$(sha1sum $1 | \awk '{print $1}') elif nvm_has "sha1"; then checksum=$(sha1 -q $1) else - checksum=$(sha1sum $1 | \awk '{print $1}') + checksum=$(shasum $1 | \awk '{print $1}') fi if [ "$checksum" = "$2" ]; then diff --git a/test/fast/Unit tests/nvm_checksum b/test/fast/Unit tests/nvm_checksum new file mode 100755 index 0000000..73cf1f1 --- /dev/null +++ b/test/fast/Unit tests/nvm_checksum @@ -0,0 +1,18 @@ +#!/bin/sh + +cleanup () { + rm tmp/emptyfile tmp/testfile + rmdir tmp +} +die () { echo $@ ; cleanup; exit 1; } + +. ../../../nvm.sh + +mkdir -p tmp +touch tmp/emptyfile +echo -n "test" > tmp/testfile + +nvm_checksum tmp/emptyfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" || die "nvm_checksum on an empty file did not match the SHA1 digest of the empty string" +nvm_checksum tmp/testfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" && die "nvm_checksum allowed a bad checksum" + +cleanup