#!/bin/bash PROGNAME=$(basename $0) PREFIX=/pub/multimedia/audio FIX=${FIX:-false} process() { TITLE="$1" DETECT_CMD="$2" REPAIR_CMD="$3" #echo "running command [$DETECT_CMD] ..." >&2 eval "$DETECT_CMD" > /tmp/$PROGNAME.$$.out 2>&1 || true if [ "X`stat -c %s /tmp/$PROGNAME.$$.out`" != X0 ]; then echo "$TITLE" printf "%${#TITLE}.${#TITLE}s\\n" "================================================================" echo cat /tmp/$PROGNAME.$$.out echo fi if $FIX; then while read FILE; do eval "$REPAIR_CMD" done < /tmp/$PROGNAME.$$.out fi rm -f /tmp/$PROGNAME.$$.out } cd /pub/multimedia/audio process "files with colons" 'find $PREFIX | grep : | grep -v "Various/John Peel"' 'mv "$FILE" "${FILE//: / }"' process "files with multispaces" 'find $PREFIX | grep " "' 'dummy' process "files with unexpected extensions" 'find $PREFIX -type f \! \( -name "*.mp3" -o -name "*.jpg" \)' 'dummy' process "files with bad permissions" 'find $PREFIX \( \( -type f \! -perm -444 \) -o \( -type d \! -perm -555 \) \)' 'chmod 644 "$FILE"'