#!/bin/bash

# -f to force run killing the previous instance

{
BASEDIR=/opt/euro-beta
INIFILE1=$BASEDIR/customdb.ini
INIFILE=$BASEDIR/eurodb.ini
SYNCDIR=$BASEDIR/data_export/invoices

USER=euro3g
KEY=/root/.ssh/id_dsa_rsync

if [ "$1" = "-f" ]; then
  FORCED=1
fi

LOCKFILE=/var/lock/`basename $0`
TMPLOCK=/tmp/`basename $0`.$$

cd $BASEDIR
MYIP=`/sbin/ifconfig eth0 | awk '/inet (addr:)?[0-9]/ { print gensub("^.*inet (addr:)?([0-9.]*) .*","\\\\2",1) }'` 
HOST=`cat $INIFILE1 $INIFILE 2>/dev/null | awk '/Host=/ {print gensub("^.*Host=","",1); exit 0 }'`

[ ! "$HOST" -o "$HOST" = 127.0.0.1 -o "$HOST" = localhost -o "$HOST" = "$MYIP" ] && exit


if ps -p `cat $LOCKFILE 2>/dev/null || echo 1` | grep -q `basename $0`; then
  REF=/tmp/ref.$$
  touch $REF
  if [ ! "$FORCED" -a $LOCKFILE -nt $REF ]; then
    rm -f $REF
    exit
  fi
  rm -f $REF
  kill -9 `cat $LOCKFILE` >/dev/null 2>&1
fi
rm -f $LOCKFILE
echo $$ >$TMPLOCK
mv $TMPLOCK $LOCKFILE
rm -f $TMPLOCK
[ "`cat $LOCKFILE`" = "$$" ] || exit
touch '-dnow + 5 minutes' $LOCKFILE

RSYNC_PARMS="--archive --verbose --recursive --update --exclude=.*" # --size-only"
SSH_CMD="ssh -i $KEY -o StrictHostKeyChecking=no"
if ! ssh -V 2>&1 | egrep -q 'OpenSSH_[3-6]'
then
  SSH_CMD="$SSH_CMD -o HostKeyAlgorithms=+ssh-dss -o KexAlgorithms=+diffie-hellman-group1-sha1 -o PubkeyAcceptedKeyTypes=+ssh-dss -c aes256-cbc"
fi
LOCAL="$SYNCDIR"
REMOTE="$USER@$HOST:$SYNCDIR"

rsync -e "$SSH_CMD" $RSYNC_PARMS  ${LOCAL}/  $REMOTE
rsync -e "$SSH_CMD" $RSYNC_PARMS  ${REMOTE}/ $LOCAL

rm -f $LOCKFILE
} >/tmp/sync_invoice.log 2>&1
