#!/bin/bash

LOG=/tmp/sdk.log
application="sdk/file/zip"

#
# NAME
#	file/zip
#
# SYNOPSIS
#	file/zip?path=...&exclude=...
#
# DESCRIPTION
#
# RETURNS
#	0 = File stored OK
#	1 = applicationName is missing
#
# VERSION
#	1.0	2016-06-30	Initial release
#
echo "$application: begin" >>$LOG ; sync                          
if [ -z "$QUERY_STRING" ] ; then                                                
  echo "$application: No parameters QUERY_STRING" >>$LOG
else
  echo "$application: QUERY_STRING = '$QUERY_STRING'" >>$LOG
  saveIFS=$IFS
  IFS=\&
  set $QUERY_STRING
  while [ "$1" ] ; do
    left=${1%=*}
    right=${1#*=}
    eval $left=$right
    echo "Parameter '$left' = '$right'" >>$LOG
    shift
  done
  IFS=$saveIFS
fi

echo "This is the $application command" >>$LOG

if [ -z "$path" ] ; then
  echo "Content-type: text/plain"
  echo ""
  echo "1"
  echo "$application: Mandatory parameter 'path' is missing">>$LOG
  exit
  
fi

path="/home/$path"

exclusion=""
OIFS=$IFS
IFS=","
for item in $exclude
do 
  _exclude="--exclude $item"
  exclusion="$exclusion $_exclude"
done
echo $exclusion >> $LOG
IFS=$OIFS

cd $path
rm /home/sdk/files/tmp/$archiveName.tar.gz >/dev/null

echo "tar -cvf /home/sdk/files/tmp/$archiveName.tar . $exclusion">>$LOG
tar -cvf /home/sdk/files/tmp/$archiveName.tar . $exclusion &>/dev/null

#tar -tf $archiveName.tar >>$LOG

gzip /home/sdk/files/tmp/$archiveName.tar

if [ -e "/home/sdk/files/tmp/$archiveName.tar.gz" ] ; then
  echo "$application: File '$archiveName.tar.gz' created OK">>$LOG
  echo "Content-Disposition: inline; filename=\"$archiveName.tar.gz\""
  echo ""
  cat /home/sdk/files/tmp/$archiveName.tar.gz
  rm /home/sdk/files/tmp/$archiveName.tar.gz >/dev/null
else
  echo "Content-type: text/plain"
  echo ""
  echo "1"
  echo "$application: Failed to create file '$$archiveName.tar.gz'">>$LOG
fi
