#!/bin/bash

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

#
# NAME
#	file/applicationZip
#
# SYNOPSIS
#	file/applicationZip?applicationName=APP_NAME
#
# DESCRIPTION
#
# RETURNS
#	0 = File stored OK
#	1 = applicationName is missing
#
# VERSION
#	1.0	2016-06-30	Initial release
#	1.1	2016-08-05	Move the temp file from projects directory up one level to stop
#				the .tar.gz fle from showing up as a project.
#	1.2	2016-11-11	Support added to include the project's application files
#				into the tar file.
#                               /home/sdk/files/projects/PROJ_NAME
#                               /home/sdk/files/applications/APP_NAME
#	1.3	2016-11-15	Bug fix.  Must delete any existing .gzfile before calling gzip.
#	1.4	2017-03-27	Adopted new nested app / project dir structure
#	1.5	2017-06-26	Rename projectZip to applicationZip. Zip /home/APP_NAME dir. Remove projectName parameter.
#
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 "$applicationName" ] ; then
  echo "Content-type: text/plain"
  echo ""
  echo "1"
  echo "$application: Mandatory parameter 'applicationName' is missing">>$LOG
  exit
  
fi

cd /home/sdk/files/tmp
#remove potential previous tar
rm $applicationName.tar.gz >/dev/null

#add all application files - todo exclude html files from /home/$applicationName/html
echo "tar -cvf $applicationName.tar -C /home $applicationName">>$LOG
tar -cvf $applicationName.tar -C /home $applicationName &>/dev/null

tar -tf $applicationName.tar >>$LOG
rm $applicationName.tar.gz >/dev/null
gzip $applicationName.tar

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