#!/bin/sh

# 所有返回值约定，1为真，0为假。
# 1为成功，0为失败

SHOW_TOOLS="/mnt/us/DKSystem/tools/dkshowfb"
UPDATEING="/mnt/us/DKSystem/tools/updating.bmp"
UPDATE_FAILED="/mnt/us/DKSystem/tools/updateno.bmp"
BATTERY_LOW="/mnt/us/DKSystem/tools/updatebatterylow.bmp"
UPDATE_TEMP_PATH="/mnt/us/update_dk_temp"
CHECK_BATTERY="20"

get_battery_ok()                                                                   
{       
	#20%                                                                        
	BAT=`lipc-get-prop com.lab126.powerd battLevel`                               
	if [ $BAT -le $CHECK_BATTERY ]                                                    
	then                                                                    
		return 0                                                        
	fi                                                                      
	return 1                                                                
}

# 支持本地存储和mmc
# 如果mmc有则不用本地存储

get_update_package()
{
		FILENAME=$(ls $1 -l | grep "update" | grep ".dku$" | awk '{print $9}' | head -n 1)
	  UPDATE_PACKAGE_PATH="$1/$FILENAME"
	  if [ -f $UPDATE_PACKAGE_PATH ]
	  then
	  		return 1
	  else
	  	  return 0
	  fi
}

# 以update开头以dku结尾的
search_update_package()
{
	  get_update_package /mnt/us
	  if [ $? -eq 1 ]
	  then
	      return 1
	  fi
	  return 0
}


# 电量不足的提示
show_batteryshort()
{
 	  $SHOW_TOOLS $BATTERY_LOW
	 	cd /
}

show_update_begin()
{
	 $SHOW_TOOLS $UPDATEING
}

show_update_error()
{
			#加载失败的图片
			$SHOW_TOOLS $UPDATE_FAILED
}

decompress_udpatepackage()
{
    tar -zxvf $1
		RETOK=$?
		if [ $RETOK -ne 0 ]
		then
				 return 0
		else
				 return 1
		fi
}

update()
{
	killall -9 rundk.sh
	killall -9 ebook

	if [ -d $UPDATE_TEMP_PATH ]
	then
		rm $UPDATE_TEMP_PATH -rf
	fi

	mkdir $UPDATE_TEMP_PATH
	cd $UPDATE_TEMP_PATH

	# 解包
  decompress_udpatepackage $UPDATE_PACKAGE_PATH

	update_result=$?
	
	if [ $update_result -ne 0 ]
	then
		if [ -f "$UPDATE_TEMP_PATH/install.sh" ]
		then
				chmod +x "$UPDATE_TEMP_PATH/install.sh"
				$UPDATE_TEMP_PATH/install.sh
		fi
	else
		rm $UPDATE_TEMP_PATH -rf
	fi

  return $update_result
}

search_update_package
PACKAGE_EXIST=$?
if [ $PACKAGE_EXIST -eq 0 ]
then
		 # 没有升级包退出
		 return 0
fi

# 有升级包开始升级
# 先检查电量
get_battery_ok
BATTERY_OK=$?
if [ $BATTERY_OK -eq 0 ]
then
		show_batteryshort
    return 1
fi

# 电量没问题
show_update_begin
update
if [ $? -eq 0 ] 
then
	show_update_error
fi
return 1
