#!/bin/sh
. /etc/blackPanther-default-apps.conf
#*********************************************************************************************************
#*   __     __               __     ______                __   __                      _______ _______   *
#*  |  |--.|  |.---.-..----.|  |--.|   __ \.---.-..-----.|  |_|  |--..-----..----.    |       |     __|  *
#*  |  _  ||  ||  _  ||  __||    < |    __/|  _  ||     ||   _|     ||  -__||   _|    |   -   |__     |  *
#*  |_____||__||___._||____||__|__||___|   |___._||__|__||____|__|__||_____||__|      |_______|_______|  *
#* http://www.blackpantheros.eu | http://www.blackpanther.hu - kbarcza[]blackpanther.hu * Charles Barcza *
#*************************************************************************************(c)2002-2011********
#default compressor LZMA
suff=xz
compressor=xz
# compress opts
bzip2args="--best"
gzipargs="--best"
zipargs="-9"
lzmaargs="-m0=lzma"
rarargs="-m5"


case $LANG in 
	hu*)
	compressing="Tömörítés"
	outfile="kimeneti fájl"
	helptxt="
	${MAG}blackPanther OS archíváló szolgáltatás${DEF}
        ----------------------------------------------------------------------------
	${GRN}Egyszerű használat:
	
	Könyvtár(ak) esetén:$YEL
	$(basename $0) könyvtárneve  vagy $(basename $0) /a/könyvtár/útja/könyvtár
	$GRN
	Fájl(ok) esetén:$YEL
	$(basename $0) fájlneve  vagy $(basename $0) /a/fájl/útja/fájl
	$GRN
	A becsomagolt archívum neve a becsomagolandó állomány nevéből generálódik.
	${YEL}Pl.: $(basename $0) /home/felhasználó/Dokumentumok ${DEF}
	eredménye    -> Dokumentumok.tar.$suff
	
	${CYN}Elérhető tömörítőprogramok:$MAG XZ ${GRN}(alapértelmezett)${MAG}, Bzip2, Gzip
	$GRN
	${SLV}Másik tömörítő választása pl.$MAG Bzip2$GRN esetén így lehetséges: 
	$YEL$(basename $0) bzip2 /home/felhasználó/Dokumentumok 
	${DEF}eredménye    -> Dokumentumok.tar.bz2
        $DEF
	"
	 imputerror="$RED
	 Nincs megadva célmappa vagy fájl. Így nincs mit becsomagolni
	 $DEF"
	;;
	*)
	compressing="Compressing"
	outfile="Out file"
	helptxt="$MAG
	blackPanther OS archiving service$DEF
        ----------------------------------------------------------------------------
	${GRN}Easy to use:
	
	Directory(s) :
	$YEL$(basename $0) directoryname or $(basename $0) /the/dir/path/to/directory
	$GRN
	File(s):
	$YEL$(basename $0) filename or $(basename $0) /the/dir/path/to/file
	$GRN
	The compressed archive name generated from input name
	${YEL}Ex.: $(basename $0) /home/username/Documents$DEF
	Output   -> Documents.tar.$suff

	${CYN}Available compressors:$MAG XZ (default), Bzip2, Gzip
	$GRN
	${SLV}Can select a other compressor ex.$MAG Bzip2$GRN here example: 
	$YEL$(basename $0) bzip2 /home/username/Documents 
	${DEF}result    -> Dokuments.tar.bz2
        $DEF
	"
	 imputerror="$RED
	 Not entered destination directory or file. Not have a input for compression
	 $DEF"
	;;
esac

if [ "$1" = "--segits" -o "$1" = "--help" -o "$1" = "-h"  ];then
    echo -e " $helptxt "
    exit
elif [ "$1" = "" ];then
    echo -e "$imputerror"
    exit
elif [ "$1" = "7z" -o "$1" = "7zip" ];then
    suff=7z
    compressor='7z a'
    DIRECTORY=$(echo $2)
    PATHTO="$3"
elif [ "$1" = "bzip2" -o "$1" = "bz2" ];then
    suff=bz2
    compressor=bzip2
    DIRECTORY=$(echo $2)
    PATHTO="$3"
elif [ "$1" = "gzip" -o "$1" = "gz" ];then
    suff=gz
    compressor=gzip
    DIRECTORY=$(echo $2)
    PATHTO="$3"
elif [ "$1" = "xz" -o "$1" = "XZ" ];then
    DIRECTORY=$(echo $2)
    PATHTO="$3"
else
    DIRECTORY=$(echo $1)
    PATHTO="$2"
    if [ -n "$PATHTO" ];then
	PATHTO=$PATHTO/
    fi
fi

ARCHNAME=$(echo $DIRECTORY | sed "s|$(echo `dirname $DIRECTORY`/)||g")

echo -e "${BLU}"
tar -cf- ${DIRECTORY} | pv -N "$(echo -e ${BLU}) ** $compressing ($outfile: $(echo -e ${YEL})$PATHTO$ARCHNAME.tar.$suff$(echo -e ${BLU})):$(echo -e ${GRN})" -s $(du -sb $DIRECTORY | awk '{ print $1 }') | $compressor > $PATHTO$ARCHNAME.tar.$suff
echo -e "$DEF"
