#!/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."