Files
music_tools/bin/music-info

183 lines
6.6 KiB
Bash
Executable File

#!/bin/bash
default_top=/opt/music/src
function list
{
type="$1"
suffix="$2"
case $type in
"track")
find $top -type f | grep "\.${suffix}$"
;;
"lp"|"ep"|"single"|"live"|"compilation"|"tribute")
find $top -type f | grep -v -e "/child/" -e "/original_soundtrack/" -e "/various_artists/" | grep -e "/${type}/" | grep "\.${suffix}$" | sed -e 's/\/[^/]*$//' | sort -u
;;
"child")
find $top -type f | grep -e "/child/" | grep "\.${suffix}$" | sed -e 's/\/[^/]*$//' | sort -u
;;
"ost")
find $top -type f | grep -e "/original_soundtrack/" | grep "\.${suffix}$" | sed -e 's/\/[^/]*$//' | sort -u
;;
"va")
find $top -type f | grep -e "/various_artists/" | grep "\.${suffix}$" | sed -e 's/\/[^/]*$//' | sort -u
;;
"us")
find $top -type f | grep -v -e "/various_artists/" -e "/original_soundtrack/" -e "/lp/" -e "/ep/" -e "/single/" -e "/live/" -e "/compilation/" -e '/misc/' -e "/tribute/" | grep "\.${suffix}$" | sed -e 's/\/[^/]*$//' | sort -u
;;
esac
}
function count
{
type="$1"
suffix="$2"
echo "$( list ${type} ${suffix} | wc -l)"
}
if [[ "$1" == "-l" ]]
then
mode="list"
shift
else
mode="stats"
fi
arg_top="$1"
if [[ "${arg_top}" != "" ]]
then
top="$(realpath ${arg_top})"
else
top="${default_top}"
fi
if [[ "${mode}" == "stats" ]]
then
track_flac="$(count track flac)"
track_ogg="$(count track ogg)"
track_mp3="$(count track mp3)"
track_music=$((${track_flac} + ${track_ogg} + ${track_mp3}))
track_avi="$(count track avi)"
track_mp4="$(count track mp4)"
track_mkv="$(count track mkv)"
track_video=$((${track_avi} + ${track_mp4} + ${track_mkv}))
track_jpg="$(count track jpg)"
track_png="$(count track png)"
track_picture=$((${track_jpg} + ${track_png}))
track_total=$((${track_music} + ${track_video} + ${track_picture}))
lp_flac="$(count lp flac)"
lp_ogg="$(count lp ogg)"
lp_mp3="$(count lp mp3)"
lp_music=$((${lp_flac} + ${lp_ogg} + ${lp_mp3}))
ep_flac="$(count ep flac)"
ep_ogg="$(count ep ogg)"
ep_mp3="$(count ep mp3)"
ep_music=$((${ep_flac} + ${ep_ogg} + ${ep_mp3}))
single_flac="$(count single flac)"
single_ogg="$(count single ogg)"
single_mp3="$(count single mp3)"
single_music=$((${single_flac} + ${single_ogg} + ${single_mp3}))
live_flac="$(count live flac)"
live_ogg="$(count live ogg)"
live_mp3="$(count live mp3)"
live_music=$((${live_flac} + ${live_ogg} + ${live_mp3}))
compilation_flac="$(count compilation flac)"
compilation_ogg="$(count compilation ogg)"
compilation_mp3="$(count compilation mp3)"
compilation_music=$((${compilation_flac} + ${compilation_ogg} + ${compilation_mp3}))
tribute_flac="$(count tribute flac)"
tribute_ogg="$(count tribute ogg)"
tribute_mp3="$(count tribute mp3)"
tribute_music=$((${tribute_flac} + ${tribute_ogg} + ${tribute_mp3}))
child_flac="$(count child flac)"
child_ogg="$(count child ogg)"
child_mp3="$(count child mp3)"
child_music=$((${child_flac} + ${child_ogg} + ${child_mp3}))
ost_flac="$(count ost flac)"
ost_ogg="$(count ost ogg)"
ost_mp3="$(count ost mp3)"
ost_music=$((${ost_flac} + ${ost_ogg} + ${ost_mp3}))
va_flac="$(count va flac)"
va_ogg="$(count va ogg)"
va_mp3="$(count va mp3)"
va_music=$((${va_flac} + ${va_ogg} + ${va_mp3}))
us_flac="$(count us flac)"
us_ogg="$(count us ogg)"
us_mp3="$(count us mp3)"
us_music=$((${us_flac} + ${us_ogg} + ${us_mp3}))
set_flac_total=$((${lp_flac} + ${ep_flac} + ${single_flac} + ${live_flac} + ${compilation_flac} + ${tribute_flac} + ${child_flac} + ${ost_flac} + ${va_flac} + ${us_flac}))
set_ogg_total=$((${lp_ogg} + ${ep_ogg} + ${single_ogg} + ${live_ogg} + ${compilation_ogg} + ${tribute_ogg} + ${child_ogg} + ${ost_ogg} + ${va_ogg} + ${us_ogg}))
set_mp3_total=$((${lp_mp3} + ${ep_mp3} + ${single_mp3} + ${live_mp3} + ${compilation_mp3} + ${tribute_mp3} + ${child_mp3} + ${ost_mp3} + ${va_mp3} + ${us_mp3}))
set_total=$((${lp_music} + ${ep_music} + ${single_music} + ${live_music} + ${compilation_music} + ${tribute_music} + ${child_music} + ${ost_music} + ${va_music} + ${us_music}))
echo "Music Statistics from ${top}:"
echo "Tracks:"
printf "Music: Flac: %5s OGG: %5s MP3: %5s Total: %6s\n" ${track_flac} ${track_ogg} ${track_mp3} ${track_music}
printf "Video: AVI: %5s mp4: %5s MKV: %5s Total: %6s\n" ${track_avi} ${track_mp4} ${track_mkv} ${track_video}
printf "Picture: JPG: %5s PNG: %5s %5s Total: %6s\n" ${track_jpg} ${track_png} "" ${track_picture}
printf " %5s %5s %5s Total: %6s\n" "" "" "" ${track_total}
echo ""
echo "Album | Flac | OGG | MP3 || Total"
echo "---------+-------+-------+-------++------"
printf "LP | %5s | %5s | %5s || %5s\n" ${lp_flac} ${lp_ogg} ${lp_mp3} ${lp_music}
printf "EP | %5s | %5s | %5s || %5s\n" ${ep_flac} ${ep_ogg} ${ep_mp3} ${ep_music}
printf "Single | %5s | %5s | %5s || %5s\n" ${single_flac} ${single_ogg} ${single_mp3} ${single_music}
printf "Live | %5s | %5s | %5s || %5s\n" ${live_flac} ${live_ogg} ${live_mp3} ${live_music}
printf "Compil | %5s | %5s | %5s || %5s\n" ${compilation_flac} ${compilation_ogg} ${compilation_mp3} ${compilation_music}
printf "Tribute | %5s | %5s | %5s || %5s\n" ${tribute_flac} ${tribute_ogg} ${tribute_mp3} ${tribute_music}
printf "Child | %5s | %5s | %5s || %5s\n" ${child_flac} ${child_ogg} ${child_mp3} ${child_music}
printf "OST | %5s | %5s | %5s || %5s\n" ${ost_flac} ${ost_ogg} ${ost_mp3} ${ost_music}
printf "VA | %5s | %5s | %5s || %5s\n" ${va_flac} ${va_ogg} ${va_mp3} ${va_music}
printf "UnSorted | %5s | %5s | %5s || %5s\n" ${us_flac} ${us_ogg} ${us_mp3} ${us_music}
echo "---------+-------+-------+-------++------"
printf "Total | %5s | %5s | %5s || %5s\n" ${set_flac_total} ${set_ogg_total} ${set_mp3_total} ${set_total}
else
for suffix in flac ogg mp3 avi mp4 mkv jpg png
do
echo "Track ${suffix}:"
list track ${suffix} | sed -e "s/^/track /"
echo
done
for type in lp ep single live compilation tribute va ost us
do
for suffix in flac ogg mp3
do
echo "Set ${type} ${suffix}:"
list ${type} ${suffix} | sed -e "s/^/${type} /"
echo
done
done
fi