79 lines
2.3 KiB
Bash
Executable File
79 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
local_check_sum()
|
|
{
|
|
if [ ! -f $1 ] || [ ! -f $2 ];then
|
|
return 1
|
|
fi
|
|
local file_cksum=`/sbin/cksum $1`
|
|
local file_crc=`echo $file_cksum | cut -d ' ' -f 1`
|
|
local file_size=`echo $file_cksum | cut -d ' ' -f 2`
|
|
|
|
local cksum_cksum=`cat $2`
|
|
local cksum_crc=`echo $cksum_cksum | cut -d ' ' -f 1`
|
|
local cksum_size=`echo $cksum_cksum | cut -d ' ' -f 2`
|
|
|
|
if [ $file_crc = $cksum_crc ] && [ $file_size = $cksum_size ]; then
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
install_PKGs()
|
|
{
|
|
local FLASH_TMP="/flashfs_tmp"
|
|
# check if the HAL subsystem exist
|
|
if [ -x /sbin/hal_app ]; then
|
|
local BOOT_DEV=$(/sbin/hal_app --get_boot_pd port_id=0)
|
|
else
|
|
local BOOT_DEV="/dev/sdx"
|
|
fi
|
|
local FLASH_RFS1=${BOOT_DEV}2
|
|
local FLASH_RFS2=${BOOT_DEV}3
|
|
local _INSTALL_PATH=$1
|
|
|
|
local BOOT_CONF=`/bin/cat /etc/default_config/BOOT.conf`
|
|
[ "x${BOOT_CONF}" = "xTS-NASX86" ] || return 0
|
|
|
|
[ -d $FLASH_TMP ] || /bin/mkdir $FLASH_TMP
|
|
/bin/mount $FLASH_RFS1 $FLASH_TMP -o ro
|
|
[ -d ${_INSTALL_PATH} ] || /bin/mkdir ${_INSTALL_PATH}
|
|
[ -d ${_INSTALL_PATH} ] || return 1
|
|
local_check_sum "$FLASH_TMP/boot/qpkg.tar" "$FLASH_TMP/boot/qpkg.tar.cksum"
|
|
if [ $? = 0 ]; then
|
|
/bin/tar xf $FLASH_TMP/boot/qpkg.tar -C ${_INSTALL_PATH}
|
|
/bin/umount $FLASH_RFS1
|
|
else
|
|
/bin/umount $FLASH_RFS1
|
|
/bin/mount $FLASH_RFS2 $FLASH_TMP -o ro
|
|
local_check_sum "$FLASH_TMP/boot/qpkg.tar" "$FLASH_TMP/boot/qpkg.tar.cksum"
|
|
[ $? = 0 ] && /bin/tar xf $FLASH_TMP/boot/qpkg.tar -C ${_INSTALL_PATH}
|
|
/bin/umount $FLASH_RFS2
|
|
fi
|
|
/bin/rmdir $FLASH_TMP
|
|
|
|
}
|
|
|
|
FindDefVol()
|
|
{
|
|
VOLMPS="HDA_DATA HDB_DATA HDC_DATA HDD_DATA HDE_DATA HDF_DATA HDG_DATA HDH_DATA HDI_DATA HDJ_DATA HDK_DATA HDL_DATA HDM_DATA HDN_DATA HDO_DATA HDP_DATA MD0_DATA MD1_DATA MD2_DATA MD3_DATA MD4_DATA MD5_DATA"
|
|
[ -x /usr/bin/dirname ] || /bin/ln -sf /bin/busybox /usr/bin/dirname
|
|
_pdir=`/sbin/getcfg Public path -f /etc/config/smb.conf`
|
|
if [ ! -z $_pdir ] && [ -d $_pdir ];then
|
|
DEF_VOLMP=$(/usr/bin/dirname "$_pdir")
|
|
else
|
|
DEF_VOLMP=
|
|
fi
|
|
if [ -z $DEF_VOLMP ]; then
|
|
PubShare=`/sbin/getcfg SHARE_DEF defPublic -d Public -f /etc/config/def_share.info`
|
|
for _vn in $VOLMPS; do
|
|
[ -d "/share/$_vn/${PubShare}" ] && DEF_VOLMP="/share/$_vn"
|
|
done
|
|
fi
|
|
if [ ! -z "$DEF_VOLMP" ] && [ -d "$DEF_VOLMP" ]; then
|
|
/bin/grep "$DEF_VOLMP" /proc/mounts 1>/dev/null 2>/dev/null
|
|
return $?
|
|
fi
|
|
return 1
|
|
}
|