#!/bin/bash
###FUNCTIONS####################################################
select_func() {
PS3=$2
select ITEM in $1
do
  echo ${ITEM}
  break
done
}

confirm_func() {
if [[ "$1" == "yes" ]]
then
echo -ne "continue? (\033[32my\033[0m/\033[31mn\033[0m)[y]: "
else
echo -ne "continue? (\033[32my\033[0m/\033[31mn\033[0m)[n]: "
fi

read item
case "$item" in
    y|Y) #echo  do it
        ;;
    n|N) #echo "input «n»..."
        exit 0
        ;;
    *) #echo "nothing..."

        if [[ "$1" == "yes" ]]
        then
                NOTEXIT=1
        else
                exit 0
        fi
        ;;
esac
}
timer_func() {
step=0
proc=0
while [[ "$step" -lt 10 ]]; do
	#proc=$(($proc+10))
	echo -n ${proc}%.. >&2
	proc=$(($proc+10))
	step=$(($step+1))
	sleep $1
done
echo -n 100%.. >&2
#sleep 2; do echo -n "|" >&2; done
}
DEV=/dev/$1
TMP=/tmp/sck_`uuidgen`
#rm -Rdf ${TMP}
ENA=$(smartctl --smart=on --offlineauto=on --saveauto=on /dev/$1)
smartctl -a /dev/$1 > ${TMP}
HDDF=$(cat ${TMP} | grep "Model Family:" | awk -F ":" '{print $2}')
HDDM=$(cat ${TMP} | grep "Device Model:" | awk -F ":" '{print $2}')
HDDT=$(cat ${TMP} | grep Temperature_Cel | head -n1 | awk -F " " '{print $10}')
HDDS=$(cat ${TMP} | grep "SMART overall-health self-assessment test result" | awk -F " " '{print $6}')
HDSN=$(cat ${TMP} | grep "Serial Number:" | awk -F " " '{print $3}')
HDSZ=$(cat ${TMP} | grep "User Capacity" | awk -F "[" '{print $2}' | awk -F "]" '{print $1}')
echo -------------------------------------------
echo ${HDDF} [${HDDM}] sn-${HDSN}  ${HDSZ}\: ${HDDS}, ${HDDT} °C
cat ${TMP} | grep "ATTRIBUTE_NAME"
cat ${TMP} | grep "Reallocated_Sector"
cat ${TMP} | grep "Start_Stop_Count"
cat ${TMP} | grep "Power_On_Hours"
cat ${TMP} | grep "Load_Cycle_Count"
echo -------------------------------------------
rm -Rdf ${TMP}
LIST="short long"
REQUEST="Select test type: "
RESULT=$(select_func "${LIST}" "${REQUEST}")
confirm_func yes
MIN=$(smartctl -t ${RESULT} ${DEV} | grep "Please wait" | cut -d' ' -f3)
let SEC=${MIN}*60+30
let ten_proc_t=${SEC}/10
echo Wait ${SEC} seconds for ${DEV} testing..
#timer_func &
timer_func ${ten_proc_t}
#timer_func_pid=$!
#sleep $sec
#kill $timer_func_pid
smartctl -a /dev/$1 > ${TMP}
HDDF=$(cat ${TMP} | grep "Model Family:" | awk -F ":" '{print $2}')
HDDM=$(cat ${TMP} | grep "Device Model:" | awk -F ":" '{print $2}')
HDDT=$(cat ${TMP} | grep Temperature_Cel | head -n1 | awk -F " " '{print $10}')
HDDS=$(cat ${TMP} | grep "SMART overall-health self-assessment test result" | awk -F " " '{print $6}')
HDSN=$(cat ${TMP} | grep "Serial Number:" | awk -F " " '{print $3}')
HDSZ=$(cat ${TMP} | grep "User Capacity" | awk -F "[" '{print $2}' | awk -F "]" '{print $1}')
HDDStart_Stop_Count=$(cat ${TMP} | grep Start_Stop_Count | awk -F " " '{print $10}')
HDDPower_On_Hours=$(cat ${TMP} | grep Power_On_Hours | awk -F " " '{print $10}')
HDDLoad_Cycle_Count=$(cat ${TMP} | grep Load_Cycle_Count | awk -F " " '{print $10}')
echo \: ${HDDS}, ${HDDT} °C
#echo ${HDDF} [${HDDM}] ${HDSN}  ${HDSZ}\: ${HDDS}, ${HDDT} °C
smartctl -l selftest /dev/$1 | grep "Test_Description"
smartctl -l selftest /dev/$1 | grep "# "
#cat ${TMP} | grep "test result:"
cat ${TMP} | grep "ATTRIBUTE_NAME"
cat ${TMP} | grep "Reallocated_Sector"
cat ${TMP} | grep "Start_Stop_Count"
cat ${TMP} | grep "Power_On_Hours"
cat ${TMP} | grep "Load_Cycle_Count"
rm -Rdf ${TMP}
exit 0
