40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
parser="$(echo $PWD | rev)"
 | 
						|
IFS="
 | 
						|
"
 | 
						|
 | 
						|
partist="$(echo $parser | cut -f 2 -d '/' | rev)"
 | 
						|
palbum="$(echo $parser | cut -f 1 -d '/' | rev)"
 | 
						|
pgenre="$(echo $parser | cut -f 3 -d '/' | rev)"
 | 
						|
 | 
						|
if [ "$partist" == "" ] || [ "$palbum" == "" ] || [ "$pgenre" == "" ]; then
 | 
						|
    echo "This script expects a format of "'$MUSICBASEPATH'"/Genre/Artist/Album/Song.ext"
 | 
						|
    exit;
 | 
						|
fi
 | 
						|
echo Expected metadata:
 | 
						|
echo Artist: $partist
 | 
						|
echo Album: $palbum
 | 
						|
echo Genre: $pgenre
 | 
						|
echo
 | 
						|
 | 
						|
for i in $@; do
 | 
						|
    echo Checking "$i"
 | 
						|
    if [ ! -f "$i" ]; then
 | 
						|
        echo File doesn\'t exist. $i
 | 
						|
        continue;
 | 
						|
    fi
 | 
						|
    fartist="$(exiftool -Artist "$i" | sed 's/^Artist\s\+:\s\+//')"
 | 
						|
    falbum="$(exiftool -Album "$i" | sed 's/^Album\s\+:\s\+//')"
 | 
						|
    fgenre="$(exiftool -Genre "$i" | sed 's/^Genre\s\+:\s\+//')"
 | 
						|
    unset tags
 | 
						|
    if [ "$partist" != "$fartist" ] || [ "$falbum" != "$palbum" ] || [ "$fgenre" != "$pgenre" ]; then
 | 
						|
        echo Found artist \[$fartist\]
 | 
						|
        echo Found album \[$falbum\]
 | 
						|
        echo Found genre \[$fgenre\]
 | 
						|
        echo Updating...
 | 
						|
        mid3v2 -a "$partist" -A "$palbum" -g "$pgenre" "$i" &>/dev/null
 | 
						|
        echo
 | 
						|
    fi
 | 
						|
done
 |