#!/bin/bash

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

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

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

if [[ "$ver" = "14.2" ]]
then
  moveold=0
else
  moveold=1
fi

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

base=`pwd`

if [[ "$pass" = "" ]]
then
  echo "***** WARNING: password for gpg not set, not creating .asc files"
  sleep 5
fi

common=`echo commonpkgs*`
if [[ $moveold -gt 0 ]] ; then
  ( cd $common/common ; ../../../moveold.sh )
  if [ -d $common/common/patches ]
  then
    ( cd $common/common/patches ; ../../../../movepatch.sh )
  fi
fi
( cd $common; echo $pass | ../../sign.sh)
rsync $DRY -avzH --delete --exclude old_packages --delete-excluded $common/* ${host}:$rbase/$common/ | tee /tmp/sync$$.log 
if [[ `wc -l < /tmp/sync$$.log` -gt 4 ]]
then
  echo Generating common md5...
  cat rootfiles/CHECKSUMS.md5 | ssh $host "cat > $rbase/$common/CHECKSUMS.md5"
  ssh $host "cd $rbase/$common/ ; find -L . -type f | grep -v '^./CHECKSUMS.md5' | $scripts/md5sumcache.pl `cachefile $common/CHECKSUMS.md5.cache` >> CHECKSUMS.md5"
  (
    cd $common
    scp -p ${host}:$rbase/$common/CHECKSUMS.md5* .
    echo $pass | ../../sign.sh onlymd5
    rsync -avz CHECKSUMS.md5* ${host}:$rbase/$common
  )
fi
\rm /tmp/sync$$.log
#for port in slackware_aarch64 slackware_armv5te slackware_armv7hl slackware_mips slackware_mipsel slackware_mips64el slackware_ppc slackware_ppc64 slackware_ppc64le slackware_riscv64 slackware_s390x
#for port in bonslack_or1k bonslack_sh4 bonslack_x86
for port in bonslack_*
do
  echo ""
  echo "***********************"
  echo "Doing $port ..."
  echo "***********************"
  echo ""
  cd $base/$port
  if [[ $moveold -gt 0 ]] ; then
    sh ../../moveold.sh
  fi
  if [[ -d patches ]]
  then
    cd patches
    sh ../../../movepatch.sh
    cd -
  else
    echo "No patches..."
  fi
  if [[ -d testing ]]
  then
    cd testing
    sh ../../../movepatch.sh
    cd -
  fi
  #if [[ -d extra/aspell-word-lists ]]
  #then
  #  cd extra/aspell-word-lists
  #  sh ../../../../movepatch.sh
  #  cd -
  #fi
  echo $pass | sh ../../sign.sh
  sh ../syncf1.sh $dry
  cd $base
done
