#!/bin/sh # Usage: this.sh datafile xmms2_set() { if [ -z "$3" ]; then return 0; fi echo -n "Setting $2 to $3... " && \ xmms2 mlib setstr $1 $2 "$3" && \ echo set. && return 0 echo error. return 1 } DISCID=`awk -F'=|\r' '$1=="DISCID"{print$2}' "$1"` ALBUM="`awk -F'=|\r| / ' '$1=="DTITLE"{print $3?$3:$2}' "$1"`" ALBUMARTIST="`awk -F'=|\r| / ' '$1=="DTITLE"{print $3?$2:""}' "$1"`" DATE="`awk -F'=|\r| / ' '$1=="DYEAR"{print$2}' "$1"`" echo "Disc $DISCID" for MLIB_ID in `xmms2 mlib search cddb_id:$DISCID | awk -F\| '/^[0-9]/{print$1}'` do N=`xmms2 info $MLIB_ID | sed -ne 's/^\[.*\] tracknr = \([0-9][0-9]*\)$/\1 1-p/p' | dc` TITLE="`awk -F'=|\r| / ' '$1=="TTITLE'$N'"{print $3?$3:$2}' "$1"`" ARTIST="`awk -F'=|\r| / ' '$1=="TTITLE'$N'"{print $3?$2:""}' "$1"`" EXTT=`awk -F'=|\r' '$1=="EXTT'$N'"{print$2}' "$1"` if [ -z "$ARTIST" ]; then ARTIST="$ALBUMARTIST"; fi echo "Medialib id $MLIB_ID is track number $N" xmms2_set $MLIB_ID title "$TITLE" && \ xmms2_set $MLIB_ID artist "$ARTIST" && \ xmms2_set $MLIB_ID album "$ALBUM" && \ xmms2_set $MLIB_ID date "$DATE" && \ xmms2_set $MLIB_ID comment "$EXTT" || break done