#!/bin/bash
#
# auto-latest-copy.sh
#
# このスクリプトはdevmonから呼ばれることを前提としています。
# とりあえずこのスクリプトはソニーのICレコーダー用です。
# 適宜修正すれば他社のICレコーダーや音楽プレーヤーでも使用できます。
#
# ※zenityコマンドが必要です。
#

PATH=${PATH}:/usr/local/bin:${HOME}/bin
MEDIAPATH=/media/disklessfun
COPYSH="/home/disklessfun/bin/latest-copy.sh"
COPYLOG="/tmp/latest-copy.log"
COMPLMSG="Copying complete, without errors."
export DISPLAY=:0.0
export LANG=ja_JP.UTF-8

command=${0##*/}  # 最後の/より後ろを取り出す
command=${command%\.*}  # 最後の.より前

LABEL=$1
mountpoint=
if test -n "${LABEL}"; then
mountpoint="${MEDIAPATH}/${LABEL}"
fi
if test -z "${mountpoint}"; then
#led-error on
TEXT="Unable to get mountpoint"
echo "${TEXT}" > "/tmp/${command}.log"
zenity --error --title "devmon" --text "${TEXT}"
exit 1
fi
sleep 1
if ! test -d "${mountpoint}"; then
#led-error on
TEXT="${mountpoint} not exist"
echo "${TEXT}" > "/tmp/${command}.log"
zenity --error --title "devmon" --text "${TEXT}"
exit 1
fi

#led-blue on

#if ! test -d "${mountpoint}/VOICE"; then
#led-error on
#TEXT="${mountpoint}/VOICE not exist"
#echo "${TEXT}" > "/tmp/${command}.log"
#zenity --error --title "devmon" --text "${TEXT}"
#exit 1
#fi
if ! test -d "${mountpoint}/PRIVATE"; then
#led-error on
TEXT="${mountpoint}/PRIVATE not exist"
echo "${TEXT}" > "/tmp/${command}.log"
zenity --error --title "devmon" --text "${TEXT}"
exit 1
else
:
#sleep 1.5 # 内蔵メモリのボリュームが確実にアンマウントされるのを待つ
fi

# 最新ファイル持ち出し処理
echo -n > "${COPYLOG}"
"${COPYSH}" "${LABEL}" 2>&1|tee "${COPYLOG}"| \
(zenity --progress --pulsate --auto-close \
--title "devmon" --text "ファイル持ち出し処理中")
if !(egrep -q "^${COMPLMSG}$" "${COPYLOG}"); then
#led-error on
touch /tmp/Copying_Failure
TEXT="ファイル持ち出し処理中にエラーが発生"
echo "${TEXT}" > "/tmp/${command}.log"
zenity --error --title "devmon" --text "${TEXT}"
exit 1
fi

cd /media || exit 1
sync

# アンマウント
if test -n "${mountpoint}"; then
TEXT="`umount "${mountpoint}" 2>&1`"
if test $? -eq 0; then
touch /tmp/Ejection_Success
# アンマウントが成功したことを画面上に知らせる
(echo 0;sleep 0.1;echo 20;sleep 0.2;echo 60;sleep 0.2;echo 100;sleep 0.2)| \
zenity --progress --auto-close --title "devmon" --text "アンマウント成功"
else
#led-error on
touch /tmp/Ejection_Failure
echo "${TEXT}" > "/tmp/${command}.log"
zenity --error --title "devmon" --text "${TEXT}"
exit 1
fi
fi
#led-blue off
