#!/bin/bash

bdir=`echo commonpkgs-*`
#sdir="$bdir/standard"
sdir="standardpkgs/"
#Use only lowmem version
#ldir="$bdir/lowmem"
ldir="$bdir/common"

function package_name
(
perl -e '
sub pkgbase {
  my $pkg=shift;
  my $i;
  if(($i=rindex($pkg,"/"))>=0) {
    $pkg=substr($pkg,$i+1);
  }
  $pkg=~s/\.t[gblx]z$//;
  return($pkg);
}

sub package_name {
  my $pkg=shift;
  my $pkgn;
  $_=pkgbase($pkg);
  ($pkgn)=m/(.+)-.+?-.+?-.+?/;
  if(length($pkgn)==0) { $pkgn=$_; }
  return($pkgn);
}

print package_name($ARGV[0]);

' "$1"
)


find $sdir -name "*.t?z" | while read ks
do
  ks=`echo $ks | sed "s|$sdir||"`
  base=`package_name $ks`
  dir=`dirname $ks`
  echo "BASE=$base DIR=$dir KS=$ks"

  ktxt=`echo $ks | sed 's/\.txz$//'`.txt

  if [[ ! -f $ldir/$ks || $sdir/$ks -nt $ldir/$ks ]]
  then
    \rm $ldir/$dir/${base}*
    if [ ! -d $ldir/dir ]
    then
      mkdir -p $ldir/$dir
    fi
    xzcat $sdir/$ks | xz --threads=1 -v -v -v --lzma2=dict=8MiB > $ldir/$ks
    touch -r $sdir/$ks $ldir/$ks
    cp -p $sdir/$ktxt $ldir/$dir/
  fi

  for i in bonslack_*
  do
    if [[ ! -d $i/$dir ]]
    then
      mkdir -p $i/$dir
    fi
    if [[ -d $i/$dir && ! -h $i/$dir/$ks ]]
    then
      echo "Linking $ks to $i..."
      \rm $i/$dir/${base}*
      ln -s ../../../$ldir/$ks $i/$ks
      ln -s ../../../$ldir/$ktxt $i/$ktxt
      ln -s ../../../$ldir/$ks.asc $i/$ks.asc
    fi
  done
done

#for i in armv5te ppc mips mipsel sh4 or1k hppa sparc x86
cd $ldir
echo $pass | ../../../sign.sh
