#!/bin/bash
#
# 11-25-2008 | nj6n | Initial release of update 3.0 - Installs ICOM dsgwd patch
#
CURL="/usr/bin/curl --connect-timeout 90 --max-time 120"
KERNEL=`/bin/uname -r`;
UPDATE_URL="http://dsyncg2.dstarusers.org/index.php"
#
DSTARGW=/opt/products/dstar/dstar_gw
DSIPSVD=$DSTARGW/dsipsvd/dsipsvd
DSGWD=$DSTARGW/dsgwd/dsgwd
DSICONF=$DSTARGW/dsipsvd/dsipsvd.conf
#
GW_CALL=`egrep -e '^ZR_CALLSIGN' $DSICONF | sed -e 's/ //g' | awk -F"=" '{print $2}' |sed -e 's/\r//'`
#
PATCH_LOC=dsyncg2.dstarusers.org
PNAME=dsgwd_Rev2.2.tar.gz
#
# MD5 sums of installed files
#
SUM1=84608bae24ef3deafb2a4bbd0bcd11bc
#
# Command locations
#
ECHO=/bin/echo
SERVICE=/sbin/service
MD5SUM=/usr/bin/md5sum
#
# functions
#
#
# Make sure the dstar gateway applications exist
#
$ECHO -n "Checking for: $DSIPSVD ... "
if [ ! -x $DSIPSVD ]; then
echo "$DSIPSVD doesn't exist!"
DATE=`date -u "+%F %T"`
$CURL $UPDATE_URL \
-d gateway_call="$GW_CALL" \
-d datetime="$DATE" \
-d status="Update #3: $DSIPSVD not found!" \
-d trust="$TRUST_SERVER" \
-d notify_em="" \
-d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1
exit
else
echo "[ok]"
fi
$ECHO -n "Checking for: $DSGWD ... "
if [ ! -x $DSGWD ]; then
echo "$DSGWD doesn't exist!"
DATE=`date -u "+%F %T"`
$CURL $UPDATE_URL \
-d gateway_call="$GW_CALL" \
-d datetime="$DATE" \
-d status="Update #3: $DSGWD not found!" \
-d trust="$TRUST_SERVER" \
-d notify_em="" \
-d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1
exit
else
echo "[ok]"
fi
#
# Stop the gateway...
#
$SERVICE dstar_gw stop
/bin/sleep 2
$SERVICE dstar_gw status
#
# Back up the old files
#
DATE=`date -u "+%y%m%d-%H%M%S"`
mv -f $DSGWD $DSGWD.backup.$DATE
#
# Download and install the patch
#
echo "Downloading patch file..."
cd /tmp
$CURL -O $PATCH_LOC/$PNAME > /dev/null 2>&1
echo -n "Verifying patch file ... "
VERIFY_SUM=`$MD5SUM ./$PNAME | awk '{print $1}'`
if [ $VERIFY_SUM != $SUM1 ]; then
echo
echo "## Invalid MD5 checksum for patch file, Aborting. ($VERIFY_SUM != $SUM1)"
DATE=`date -u "+%F %T"`
$CURL $UPDATE_URL \
-d gateway_call="$GW_CALL" \
-d datetime="$DATE" \
-d status="Update #3: Invalid Checksum." \
-d trust="$TRUST_SERVER" \
-d notify_em="" \
-d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1
exit;
else
echo "[ok]"
fi
cd $DSTARGW/dsgwd
if [ $? != 0 ]; then
echo
echo "Unable to chdir to $DSTARGW, Aborting!!"
DATE=`date -u "+%F %T"`
$CURL $UPDATE_URL \
-d gateway_call="$GW_CALL" \
-d datetime="$DATE" \
-d status="Update #3: $DSTARGW not found!" \
-d trust="$TRUST_SERVER" \
-d notify_em="" \
-d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1
exit
fi
echo "Unpacking patch file ... "
/bin/gzip -dc /tmp/$PNAME | /bin/tar -xvf -
echo "[done]"
#
# Set permissions
#
chmod 755 $DSGWD
#
# Restart everything
#
echo "Restarting Gateway Applications... "
$SERVICE dstar_gw start
/bin/sleep 2
$SERVICE dstar_gw status
#
# report to dsync site...
#
DATE=`date -u "+%F %T"`
$CURL $UPDATE_URL \
-d gateway_call="$GW_CALL" \
-d datetime="$DATE" \
-d status="Update #3 Installed." \
-d trust="$TRUST_SERVER" \
-d notify_em="" \
-d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1
echo
echo "All done."