# create or check checksums for all files in current directory.
# usage: checksum <ACTION>
# actions: "new", "check".
checksum()
{
local action="$1" # what to do with checksum.
local file="checksum.sha1" # file name to store checksums.
if [[ "$action" =~ ^(n|new)$ ]]; then
# create checksums for all files.
find -type f | parallel sha1sum {} >> "$file"
# remove checksum file from resulting hashes.
sed -i "/$file/d" "$file"
return 0
fi
if [[ "$action" =~ ^(c|check)$ ]]; then
# check checsums for all files.
sha1sum --quiet -c ./checksum.sha1
# error on wrong action.
echo "supported actions: new (n), check (c)."
return 2
}
# autocomplete.
_checksum()
_autocomplete_first "{new,check}"
complete -F _checksum checksum