calc_checksum()
{
cd "$OUTPUT_PATH" || return $?
- find . -type f -regex '.*\(\.ogg\|\.mp3\|\.opus\|\.flac\)' \
- | sort \
- | xargs sha256sum > checksum.sha256
+ find . -type f \
+ -regex '.*\(\.ogg\|\.mp3\|\.opus\|\.flac\)' \
+ -print0 \
+ | sort --zero-terminated \
+ | xargs --null sha256sum > checksum.sha256
}
main()
echo "testfile2" > "build/tests/output/Artist1/Album1/02.mp3"
echo "testfile1" > "build/tests/output/Artist1/Album1/01.opus"
echo "testfile4" > "build/tests/output/Artist1/Album1/bla.flac"
+ echo "spaces" > "build/tests/output/Artist1/Album1/file with spaces.flac"
echo "testfile5" > "build/tests/output/Artist1/Album1/other"
echo "testfile6" > "build/tests/output/Artist1/Album1/other.txt"
echo "testfile7" > "build/tests/output/Artist1/Album1/cover.jpg"
assert_success
[ -f "build/tests/output/checksum.sha256" ]
- assert_equal "4" "$(wc --lines "build/tests/output/checksum.sha256" | sed 's/ .*//')"
+ assert_equal "5" "$(wc --lines "build/tests/output/checksum.sha256" | sed 's/ .*//')"
assert_equal "$(awk 'NR==1 {print; exit}' "build/tests/output/checksum.sha256")" "49057fb3e3bffe69b082e78550da731593c75bf19b4ba76c44a722defe4393f5 ./Artist1/Album1/01.opus"
assert_equal "$(awk 'NR==2 {print; exit}' "build/tests/output/checksum.sha256")" "5ca47f5787b6cba8809184876e8557f8650d92c2b7c63a03d1a9b9aa352f7aae ./Artist1/Album1/02.mp3"
assert_equal "$(awk 'NR==3 {print; exit}' "build/tests/output/checksum.sha256")" "1aaea6c72ae66ce6bd36cd08fb511565a34179780d68166515a9f045652088c2 ./Artist1/Album1/bla.flac"
assert_equal "$(awk 'NR==4 {print; exit}' "build/tests/output/checksum.sha256")" "96af1c6d5c863aef68cabe54aefc2342e66a9cf6b5663660f2ea8cea86e9f5ce ./Artist1/Album1/blub.ogg"
+ assert_equal "$(awk 'NR==5 {print; exit}' "build/tests/output/checksum.sha256")" "e47fbedb2823cf1ae4d4cdb8273635be2024cb870588e259c9b23d76ae49d484 ./Artist1/Album1/file with spaces.flac"
}
# bats test_tags=albentohandy:usage