diff --git a/files/md5sum-update b/files/md5sum-update index f26d388..5c625f1 100755 --- a/files/md5sum-update +++ b/files/md5sum-update @@ -27,6 +27,7 @@ for ((i=1; i<=${#@}; i++)) { if [[ ${#paths[@]} -eq 0 ]]; then paths+=(".") fi +which pv &>/dev/null && PVBIN=$( which pv ) set -e echo "Updating: $list_name" test -f "$list_name" || touch "$list_name" @@ -45,10 +46,17 @@ _update() { fi if test -f "$1"; then if awk '{ print substr($0,35) }' "$list_name" | grep -qFx "$1"; then - echo "$1: exist" + echo "Exists: $1" else - echo "$1: new" - md5sum "$1" >> "$list_name" + echo "New: $1" + size=$( stat -c %s "$1" ) + if [[ $size -gt 100000000 ]] && [[ -n "$PVBIN" ]]; then + # Use pv is size > 100MB + sum=$( $PVBIN "$1" | md5sum | awk '{ print $1 }' ) + printf "%s %s\n" "$sum" "$1" >> "$list_name" + else + md5sum "$1" >> "$list_name" + fi updates_done=1 fi fi