#! /bin/bash

mp3diag () {

if [ ! -f "$1" ]; then
  echo "No such file"
  return
fi

DATA=`mp3info -F1 "$1" 2>&1`

if [ "`echo $DATA | grep ^Error`X" != "X" ]; then
  echo "Error in MP3"
  return
fi

CHOICE=BANANAN

while [ "$CHOICE" != "EXIT" ]; do
  TITLE=`echo $DATA | cut -f 1 -d \|`
  ARTIST=`echo $DATA | cut -f 2 -d \|`
  ALBUM=`echo $DATA | cut -f 3 -d \|`
  YEAR=`echo $DATA | cut -f 4 -d \|`
  COMMENT=`echo $DATA | cut -f 5 -d \|`
  GENRE=`echo $DATA | cut -f 6 -d \|`
  GNUM=`echo $DATA | cut -f 7 -d \|`
  dialog --menu "Select which option to change" $H $W $M Title "$TITLE" Artist "$ARTIST" Album "$ALBUM" Year "$YEAR" Comment "$COMMENT" Genre "$GENRE" "EXIT" "Done" 2>$FILE
  CHOICE=`cat $FILE`
  case $CHOICE in 
    Title)   dialog --inputbox "Enter Title" $H $W "$TITLE" 2>$FILE
             DATA=$(mp3info -F1 -t "$(cat $FILE)" "$1")
             ;;
    Artist)  dialog --inputbox "Enter Artist" $H $W "$ARTIST" 2>$FILE
             DATA=$(mp3info -F1 -a "$(cat $FILE)" "$1")
             ;;
    Album)   dialog --inputbox "Enter Album" $H $W "$ALBUM" 2>$FILE
             DATA=$(mp3info -F1 -l "$(cat $FILE)" "$1")
             ;;
    Year)    dialog --inputbox "Enter Year" $H $W "$YEAR" 2>$FILE
             DATA=$(mp3info -F1 -y "$(cat $FILE)" "$1")
             ;;
    Comment) dialog --inputbox "Enter Comment" $H $W "$COMMENT" 2>$FILE
             DATA=$(mp3info -F1 -c "$(cat $FILE)" "$1")
             ;;
    Genre)   echo "dialog --radiolist \"Select Genre\" $H $W $M $(mp3info -p-$(expr $GNUM + 1)) 2>$FILE" >$FILE.g
             . $FILE.g
             DATA=$(mp3info -F1 -g "$(cat $FILE)" "$1")
             ;;
    *)	     CHOICE=EXIT
             ;;
  esac
done

}

H=23
W=75
M=15

FILE="/tmp/mp3info.`whoami`.`date +%s`"


if [ "$1" = "" ]; then
   echo "dialog --menu \"Select File\" $H $W $M $(mp3info -F6 *.[Mm][Pp]3 | tr \\n " ") EXIT Done 2> $FILE" > $FILE.c
   FCHOICE=BANANAN   
   while [ "$FCHOICE" != "EXIT" ]; do
     . $FILE.c
     FCHOICE=`cat $FILE`
     if [ -f "$FCHOICE" ]; then
       mp3diag "$FCHOICE"; 
     else
       FCHOICE=EXIT
     fi
   done  
   exit
fi

mp3diag "$1"

rm -f $FILE
rm -f $FILE.g
rm -f $FILE.c
