#!/bin/bash

dry=`echo $1 | grep -ci dry`

if [[ $dry -gt 0 ]]
then
  DRY="--dry-run"
fi

host=ryzenf1
rbase=/var/www/slackware
scripts="$rbase/.template"
cachedir="$scripts/cache"
slack="slackware"
dir=`dirname $(pwd)`
ver=`basename $dir|sed 's/^slackware64-//' | sed 's/^packages_//' | sed 's/\.pack$//'`
port=`basename $(pwd)`

cachefile()
{
  cf=`echo $1 | sed "s|$rbase/||" | sed 's|/|_|g'`
  echo "$cachedir/$cf"
}


# Check for libraries links in extra-bon
for pkg in duktape libcroco
do
  fullpkg=`cd extra-bon; echo ${pkg}-*.txz`
  if [[ -f extra-bon/$fullpkg ]]
  then
    if [[ ! -f l/$fullpkg ]]
    then
      \rm l/${pkg}-*.tx*
      (cd l ; ln -s ../extra-bon/${pkg}-*.tx* . )
    fi
  fi
done

count=0
for i in a ap d e f k kde kdei l n t tcl x xap xfce y installer
do
  if [[ -d $i ]]
  then
    if [[ $dry -eq 0 ]]
    then
      ssh $host "if [[ ! -f $rbase/${port}-$ver/$slack/$i ]] ; then mkdir -p $rbase/${port}-$ver/$slack/$i; fi"
    fi
    rsync $DRY -avzH --delete --delete-excluded --exclude old_packages --exclude bootstrap $i/ "${host}:$rbase/${port}-$ver/$slack/$i/"  | tee /tmp/sync$ver.log
    if [[ `wc -l < /tmp/sync$ver.log` -gt 4 ]]
    then
      let count=$count+1
    fi
  fi 
done
for i in extra extra-bon testing pasture patches kernels boot
do
  if [[ -d $i ]]
  then
    ssh $host "if [[ ! -f $rbase/${port}-$ver/$i ]] ; then mkdir -p $rbase/${port}-$ver/$i; fi"
    rsync $DRY -avzH --delete --delete-excluded --exclude old_packages --exclude bootstrap $i/ "${host}:$rbase/${port}-$ver/$i/" | tee /tmp/sync$ver.log
    if [[ `wc -l < /tmp/sync$ver.log` -gt 4 ]]
    then
      let count=$count+1
    fi
  fi
done

if [[ $dry -gt 0 ]]
then
  count=0
fi

if [[ $count -gt 0 ]]
then
echo "Synching.... $count"
rsync $DRY -avzH ../rootfiles/* "${host}:$rbase/${port}-$ver/" 
rsync $DRY -avz --copy-links ../ChangeLog.txt "${host}:$rbase/${port}-$ver/" 

echo Generating file list...
ssh $host "cd $rbase/${port}-$ver/ ; date > FILELIST.TXT"
cat ../FILELIST_stub.txt | ssh $host "cd $rbase/${port}-$ver/ ; cat >> FILELIST.TXT"
ssh $host "cd $rbase/${port}-$ver/ ; find . | xargs ls -ld >> FILELIST.TXT"
echo Generating md5...
ssh $host "cd $rbase/${port}-$ver/ ; find -L . -type f | grep -vE '^./CHECKSUMS.md5|./source' | $scripts/md5sumcache.pl `cachefile ${port}-$ver/CHECKSUMS.md5.cache` >> CHECKSUMS.md5"
rsync -avz ${host}:$rbase/${port}-$ver/CHECKSUMS.md5* .
echo $pass | ../../sign.sh onlymd5
rsync -avz CHECKSUMS.md5* ${host}:$rbase/${port}-$ver/
fi
