#!/bin/sh
#####################################################################
#
# chgrf
#
# Shell script to change a repository file at Repository
#
# 2013/04/26
#
# Usage: chgrf repo-file
#
##################################################################### 


# Check argument
if [ $# -lt 1 ]; then
	echo "Usage: chgrf {repository-file}"
	exit 1
fi

# Detemine image file
echo "$1" | grep / >& /dev/null
if [ $? -eq 0 ]; then
	IMGFILE="$1"
else
	IMGFILE="`pwd`/$1"
fi


REPOSITORY_DIR=/mnt/repo
REPO_MOUNT=`mount | grep -c $REPOSITORY_DIR`
if [ $REPO_MOUNT -ne 1 ]; then
	echo "Repository may be not mounted!"
	exit 1
fi

# identify rf
if [ -f /etc/fwfwid ]; then
	. /etc/fwfwid
else
	FWFWID=ga
fi
OLD_RF_TMP=`echo $IMGFILE | sed -e 's/\///g' -e 's/[a-zA-Z_0-9\-\.]*rf_${FWFWID}//g'`
##echo "OLD_RF_TMP :: $OLD_RF_TMP"

RF_IDENT=${OLD_RF_TMP:1:2}
##echo "RF_IDENT :: $RF_IDENT"

# Check is valid rf
#/usr/sbin/rfm -v $IMGFILE > /dev/null 2>&1
gunzip -t $IMGFILE > /dev/null 2>&1
RFM_CHECK=$?

if [ $RFM_CHECK -ne 0 ]; then
	echo "RF check fail !"
	exit 1
fi


OLD_RF_COUNT=`ls ${REPOSITORY_DIR}/rf_${FWFWID}-${RF_IDENT}*tar.gz | wc | awk '{print $1}'`

if [ $OLD_RF_COUNT -gt 0 ];then
	echo -n "Delete old rf : "
	ls ${REPOSITORY_DIR}/rf_${FWFWID}-${RF_IDENT}*tar.gz
	rm ${REPOSITORY_DIR}/rf_${FWFWID}-${RF_IDENT}*tar.gz
fi

echo -n "Change firmware file ... "
cp -a $IMGFILE $REPOSITORY_DIR
/bin/sync

echo "[  OK  ]"
echo "rf($IMGFILE) is updated."

exit 0
