#!/bin/bash # # 07-20-2008 | nj6n | Initial release of update 2.0 - Installs ICOM patch # 12-23-2008 | nj6n | Added postgresql library path to ld.so.conf # CURL="/usr/bin/curl --connect-timeout 90 --max-time 120" KERNEL=`/bin/uname -r`; UPDATE_URL="http://dsyncg2.dstarusers.org/index.php" LIB="/opt/products/dstar/pgsql/lib" DSTAR_LD_CONF="/etc/ld.so.conf.d/dstar.conf" # DSTARGW=/opt/products/dstar/dstar_gw DSIPSVD=$DSTARGW/dsipsvd/dsipsvd DSGWD=$DSTARGW/dsgwd/dsgwd DBDELREC=$DSTARGW/dsipsvd/dbdelrec 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=update2.tar.gz # # MD5 sums of installed files # SUM1=b24a24c8f151ff2b55dd8195176ae98a # # Command locations # SERVICE=/sbin/service MD5SUM=/usr/bin/md5sum # # functions # # # Make sure the dstar gateway applications exist # /bin/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 #2: $DSIPSVD not found!" \ -d trust="$TRUST_SERVER" \ -d notify_em="" \ -d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1 exit else echo "[OK]" fi /bin/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 #2: $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"` cp $DSIPSVD $DSIPSVD.backup.$DATE cp $DSGWD $DSGWD.backup.$DATE cp $DBDELREC $DBDELREC.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 #2: 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 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 #2: $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 ... " tar -xvf /tmp/$PNAME echo "[done]" # # Set permissions # chmod 755 $DSIPSVD chmod 755 $DSGWD chmod 755 $DBDELREC # # Update LD Library Path # /bin/echo -n "Adding $LIB to LD_LIBRARY_PATH configuration directory..." echo $LIB > $DSTAR_LD_CONF /sbin/ldconfig /bin/echo "[OK]" # # 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 #2 Installed." \ -d trust="$TRUST_SERVER" \ -d notify_em="" \ -d version="$0 $VERSION
$KERNEL" > /dev/null 2>&1 echo echo "All done."