AtOM/toys/checkextensions
Vincent Riquer e09fefb429 rename files
2013-04-07 03:48:39 +02:00

129 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# config structures
declare -A \
destinationchannels \
destinationfat32compat \
destinationcopymime \
destinationformat \
destinationfrequency \
destinationid \
destinationloss \
destinationmaxbps \
destinationnormalize \
destinationpath \
destinationquality \
destinationrename \
destinationnoresample \
destinationrenamepath \
destinationskipmime \
|| {
echo "Check your Bash version. You need >= 4.0" >&2
exit $EBASHVERS
}
declare -r \
DOCDIR=./doc \
LIBDIR=./lib \
SHAREDIR=./share
declare -r \
exampleconf=$DOCDIR/example.cfg \
schema=$SHAREDIR/schema.sql \
\
oldIFS="$IFS"
LC_ALL=C
shopt -s extglob
for function in "$LIBDIR"/*/*
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
(( update )) && getFiles
echo '
SELECT
source_files.id,
source_files.filename,
mime_types.mime_text
FROM
source_files
INNER JOIN mime_types
ON source_files.mime_type = mime_types.id
;
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
if [[ $line == AtOM:NoMoreFiles ]]
then
break
fi
fileid=${line%%|*}
rest="${line#*|}|"
filename=${rest%%|*}
rest=${rest#*|}
mimetype=${rest%%|*}
rest=${rest#*|}
case "$mimetype" in
'audio/mpeg')
if [[ ${filename##*.} != mp3 ]]
then
extension=.mp3
echo "$filename: MP3 ($extension)"
(( rename )) && renameFile
fi
;;
'application/ogg vorbis')
if [[ ${filename##*.} != ogg ]]
then
extension=.ogg
echo "$filename: Ogg Vorbis ($extension)"
(( rename )) && renameFile
fi
;;
'application/ogg opus')
if [[ ${filename##*.} != opus ]]
then
extension=.opus
echo "$filename: Opus ($extension)"
(( rename )) && renameFile
fi
;;
'audio/x-flac')
if [[ ${filename##*.} != flac ]]
then
extension=.flac
echo "$filename: FLAC ($extension)"
(( rename )) && renameFile
fi
;;
esac
done
closeDatabase