#!/bin/bash

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

#
# NAME
#	file/unzip
#
# SYNOPSIS
#	file/unzip?path=...
#
# DESCRIPTION
#
# RETURNS
#	0 = File unzipped OK
#	1 = Mandatory parameter 'path' is missing
#   2 = Unable to unzip archive
#
# VERSION
#	1.0	2018-08-29	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 "$application: Mandatory parameter 'path' is missing">>$LOG
  echo "Content-type: text/xml"
  echo ""
  echo '<?xml version="1.0" encoding="iso-8859-1"?>'
  echo "<response>"
  echo "<statusCode>1</statusCode>"
  echo "<errorMessage>Mandatory parameter 'path' is missing</errorMessage>"
  echo "</response>"
  exit  
fi

path="/home/$path"

cd /home/sdk/files/tmp

fname=$(basename $path) 
filename="${fname%%.*}"

echo "$application: mkdir -m 775 -p /home/sdk/files/tmp/unzip/$filename">>$LOG
mkdir -m 775 -p /home/sdk/files/tmp/unzip/$filename


echo "$application: umask 000 && tar -xzvf $path -C unzip/$filename > /dev/null">>$LOG
umask 000 && tar -xzvf $path -C unzip/$filename > /dev/null

echo "Content-type: text/xml"
echo ""
echo '<?xml version="1.0" encoding="iso-8859-1"?>'
echo "<response>"
if [ $? -eq 0 ] 
then 
 	echo "<statusCode>0</statusCode>"
	echo "<unzipPath>sdk/files/tmp/unzip/$filename</unzipPath>"
else
 	echo "<statusCode>2</statusCode>"
	echo "<errorMessage>Unable to unzip archive</errorMessage>"
fi
echo "</response>"
