#!/bin/sh

# Creates tar.xz archive
# Created: 2016.05.11.10:15
# Author: Kārlis Kalviškis <eko@lanet.lv>
# License: GPLv3


# For translation
export TEXTDOMAIN="karlo-scripts"
. gettext.sh


echo 
echo `eval_gettext 'Creates an TAR.XZ archive'`
echo `eval_gettext 'Symbolic links are preserved.'`
type -P tar &>/dev/null || { echo  "`eval_gettext 'Command'` 'tar' `eval_gettext 'is missing'`"; exit 1; }
type -P zenity &>/dev/null || { echo  "`eval_gettext 'Command'` 'zenity' `eval_gettext 'is missing'`"; exit 1; }
echo 

if [ $# -gt 0 ]; then
	for parametrs in $*
	do
		case $parametrs in
			-h | --help ) echo `eval_gettext 'Usage'`: $0  [-h][-y] `eval_gettext 'source'` [`eval_gettext 'destination'`]
				echo -e '\t-h|--help – '`eval_gettext 'this help file'`.
				echo -e '\t-y – '`eval_gettext 'No question is asked'`.
				exit
				;;
			-y ) noquestion=true
				;;
			-* ) echo `eval_gettext 'Unknown parameter '` $parametrs
				exit 1
				;;
			* ) if [ -z $FROMDIR ]; then
					FROMDIR=${parametrs%\/}
				else
					KURKOPEET=$parametrs
				fi
				;;
		esac
	done
else
	echo 
	echo `eval_gettext 'Missing parameters. Usage:'`
	echo $0 [-y] [-h] `eval_gettext 'source'` [`eval_gettext 'destination'`]
	echo 
	exit 2
fi

: ${KURKOPEET:=$FROMDIR}
KURKOPEET=$(echo $KURKOPEET.tar.xz)
if [ ! -t 1 ]; then
	noquestion=true
fi


veido ()
{
	tar -cJ $1/ > $2
}
zinjo ()
{
	if [ -t 1 ]; then
		echo $1
	else
		zenity  --warning --text="$1"
	fi
}

if [ -d $FROMDIR ]; then
	if [ -a $KURKOPEET ]; then
		zinjo "$(echo `eval_gettext 'Error'`: `eval_gettext 'file'` $KURKOPEET `eval_gettext 'exist'`)"
		exit 1
	fi
	echo `eval_gettext 'Input:'` $FROMDIR
	echo `eval_gettext 'Output:'` $KURKOPEET
	if [[ $noquestion == true ]]; then
		veido $FROMDIR $KURKOPEET
	else
		echo `eval_gettext 'Process the files? (Y/N)'`
		while true; do
			read yn
			case $yn in
				[YyJj]* ) veido $FROMDIR $KURKOPEET; break
					;;
				[Nn]* ) exit
					;;
				* ) echo `eval_gettext '(Y)es or (N)o?.'`
					;;
			esac
		done
	fi
else
	zinjo "$(echo `eval_gettext 'Error'`: $FROMDIR `eval_gettext 'not a directory'`)"
	exit 1
fi

