#!/bin/sh
# April 2007 Nathan Fisher

# Determine the path to this application.
CURDIR="`pwd`"
APPDIR=`dirname "$0"`
cd "${APPDIR}"
APPDIR="`pwd`"
cd "${CURDIR}"

PROFILE=$HOME/.config/grafburnrc
. $PROFILE

#tmp file
TMPFILE=$HOME/.config/grafburntmp

if [ "$PREVISODIR" = "" ];then
 PREVISODIR=/
fi


# Link the files into our temp directory
link_files() {
FILELIST="$1"
[ "$FILELIST" = "" ] && exit 1
# We have to deal with spaces in directory or file names
cat $FILELIST | tr ' ' '%' | tr "\n" ' ' > $TMPFILE
FILES=`cat $TMPFILE`
mkdir ${TMPDIR}/files
cd ${TMPDIR}/files
for FILE in $FILES
  do
  FILENAME="`echo $FILE | tr '%' ' '`"
  BASENAME="`basename "$FILENAME"`"
  ln -s "$FILENAME" "$BASENAME"
done
}

# Create the iso
create_iso() {
#Set file name and volume id
Xdialog --icon $APPDIR/icons/big/drive-optical.png --stdout --left --title \
"Grafburn: ディスクプロパティの設定" --2inputsbox "ここではオプションでディスクに \
ISOファイル名\nとボリュームIDを付けられます。" 0 0 "ファイル名" grafburn.iso \
"ボリュームID" "grafburn_project" > ~/.config/grafburntmp
[ ! $? -eq 0 ] && exit 0

#file name and volume id are stored in ~/.config/grafburntmp
#read it and then discard
NAME=`cat ~/.config/grafburntmp | cut -f 1 -d '/'`
VOLUME=`cat ~/.config/grafburntmp | cut -f 2 -d '/'`
[ "$NAME" = "" ] && exit 0
rm -f ~/.config/grafburntmp

#create the iso
rxvt -bg black -fg green -geometry 60x8 -title "Grafburn: ISOの作成" \
	-e mkisofs -D -f -J -R -o "$OUTDIR/$NAME" -V "$VOLUME" "${TMPDIR}/files/"

if [ ! -f "$OUTDIR/$NAME" ];then
  export ERROR_DIALOG="
  <window title=\"Grafburn: エラー\" icon-name=\"gtk-dialog-error\" window-position=\"1\">
   <vbox>
    <frame>
     <text>
      <label>ISOイメージを作成中にエラーが起こりました。スクリプトを終了します。</label>
     </text>
    </frame>
    <hbox>
     <button ok></button>
    </hbox>
   </vbox>
  </window>"
  gtkdialog3 --program ERROR_DIALOG
  exit 1
fi
cd "${CURDIR}"
rm -R ${TMPDIR}/files
}

link_files "$1"
create_iso
exec $APPDIR/burn_iso "$OUTDIR/$NAME"













