diff --git a/toys/README b/toys/README index df08137..e518275 100644 --- a/toys/README +++ b/toys/README @@ -1,3 +1,8 @@ checkextensions =============== Reports files whose extension does not match the (detected) mime-type. + +Options: + -u: update source directory + -r: rename files + -n: (with -r): show what would be done. diff --git a/toys/checkextensions b/toys/checkextensions index 5ee9167..585d48c 100755 --- a/toys/checkextensions +++ b/toys/checkextensions @@ -41,11 +41,20 @@ do source "$function" done +while getopts 'urn' opt +do + case $opt in + u) update=1 ;; + r) rename=1 ;; + n) pretend=1 ;; + esac +done + getConfig openDatabase -getFiles +(( update )) && getFiles echo ' SELECT @@ -59,6 +68,14 @@ echo ' ; SELECT "AtOM:NoMoreFiles"; ' >&3 +renameFile() { + echo $'\t'"${filename%.*}$extension" + if ! (( pretend )) + then + mv "$sourcepath/$filename" "$sourcepath/${filename%.*}$extension" + Update source_files filename "${filename%.*}$extension" + fi +} while read -u4 line do @@ -76,25 +93,33 @@ do 'audio/mpeg') if [[ ${filename##*.} != mp3 ]] then - echo "$filename: MP3 (.mp3)" + extension=.mp3 + echo "$filename: MP3 ($extension)" + (( rename )) && renameFile fi ;; 'application/ogg vorbis') if [[ ${filename##*.} != ogg ]] then - echo "$filename: Ogg Vorbis (.ogg)" + extension=.ogg + echo "$filename: Ogg Vorbis ($extension)" + (( rename )) && renameFile fi ;; 'application/ogg opus') if [[ ${filename##*.} != opus ]] then - echo "$filename: Opus (.opus)" + extension=.opus + echo "$filename: Opus ($extension)" + (( rename )) && renameFile fi ;; 'audio/x-flac') if [[ ${filename##*.} != flac ]] then - echo "$filename: FLAC (.flac)" + extension=.flac + echo "$filename: FLAC ($extension)" + (( rename )) && renameFile fi ;; esac