#!/bin/sh
#
#set -x
src=/var/www/fbox.new/24
dst_zlib=$src/../24.zlib
dst_zlib16=$src/../24.zlib16
extr=/tmp/sqf_$PPID
# binaries are searched in directory of this script
compressor=mksquashfs.zlib16kb.x86
extracter=unsquashfs-lzma.x86

for d in $dst_zlib $dst_zlib16 $extr; do
 [ -d $d ] || mkdir $d
done
for f in $src/*; do
 case ${f##*/} in *.sqf) continue;; esac
 ln -sf ../${src##*/}/${f##*/} $dst_zlib
 ln -sf ../${src##*/}/${f##*/} $dst_zlib16
done
for f in $dst_zlib/* $dst_zlib16/*; do
 [ -r $f ] || rm $f
done
#exit
for f in $src/*.sqf; do
 f2=${f##*/}
 echo "creating zlib and zlib16kb versions of $f ..."
 [ "$f" = "$src/*.sqf" ] && echo "no sqf files found" && break
 [ -f $f ] || continue
 ls $extr/* >/dev/null 2>/dev/null && rm -r $extr/* 
 echo -n "extracting: "
 if ! ${0%/*}/$extracter -dest $extr/$f2 $f; then
  echo -e "error: extraction of $f failed\n"
  continue
 fi
 echo
 for dst in $dst_zlib $dst_zlib16; do
  if [ $dst = $dst_zlib ]; then bs=65536; else bs=16384; fi
  [ -f $dst/$f2 ] && mv $dst/$f2 $dst/$f2.bak
  if ${0%/*}/$compressor $extr/$f2 $dst/$f2 -b $bs; then
   chmod 644 $dst/$f2
   [ -f $dst/$f2.bak ] && rm $dst/$f2.bak
  else
   echo "error: failed to create $dst/$f2 (from $f)"
   if [ -f $dst/$f2.bak ]; then
    mv $dst/$f2.bak $dst/$f2
    echo "warning: using previous version of $dst/$f2"
   fi
  fi
 done
 echo -e "\ndone ($f2).\n"
done

