38 lines
820 B
Bash
38 lines
820 B
Bash
# 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
|
|
|
|
return 0
|
|
fi
|
|
|
|
# error on wrong action.
|
|
echo "supported actions: new (n), check (c)."
|
|
return 2
|
|
}
|
|
|
|
# autocomplete.
|
|
_checksum()
|
|
{
|
|
_autocomplete_first "{new,check}"
|
|
}
|
|
|
|
complete -F _checksum checksum
|