#!/bin/bash

compress_cam(){
	cd "$bdir"
	upx_c="-1"

	[ -f "$configdir/upx_option" ] && source "$configdir/upx_option"
	[ "$UPX" == "not_set" ] || upx_c=$UPX

	erg=$(upx "$upx_c" "$1" |grep oscam |awk '{print $1" "$3" "$4 }')
	e1="$(echo "$erg"| awk '{printf("%4.2fk\n", $1 /1024)}')"
	e2="$(echo "$erg"| awk '{printf("%4.2fk\n", $2 /1024)}')"
	e3="$(echo "$erg"| awk '{print $3}') (level=$upx_c)"

	echo -e "\n
	$w_l\r BEFORE -----> $txt_compress1\t= $g_n$e1
	$w_l\r AFTER ------> $txt_compress2\t= $g_l$e2
	$w_l\r RESULT -----> $txt_compress3\t= $c_n$e3
	$rs_"
}

compress_cam_gui(){
	cd "$bdir"
	upx_c="-1"

	[ -f "$configdir/upx_option" ] && source "$configdir/upx_option"
	[ "$UPX" == "not_set" ] || upx_c=$UPX

	erg=$(upx "$upx_c" "$1" |grep oscam |awk '{print $1" "$3" "$4 }')
	e1="$(echo "$erg"| awk '{printf("%4.2f k\n", $1 /1024)}')"
	e2="$(echo "$erg"| awk '{printf("%4.2fk\n", $2 /1024)}')"
	e3="$(echo "$erg"| awk '{print $3}')\n"

	echo -en "\n$txt_compress1\t= $e1\n$txt_compress2\t= $e2\n$txt_compress3\t= $e3"
}

tar_cam_gui(){
	cd "$bdir"
	erg=$(tar zcf $1.tar.gz $1 $2)

	if [ -f "$1.tar.gz" ]
	then
		printf "\n$1.tar.gz\ncreated\n"
		if [ -f "$adir/$1.tar.gz" ]
		then
			rm -rf "$adir/$1.tar.gz"
			mv -f "$1.tar.gz" "$adir"
			printf "\n$1.tar.gz\n$txt_to\n$workdir/archive\n"
		else
			mv -f "$1.tar.gz" "$adir"
			printf "\n$1.tar.gz\n$txt_to\n$workdir/archive\n"
		fi
	else
		printf "\nerror\nno $1.tar.gz\ncreated\n"
	fi
}

tar_cam(){
	cd "$bdir"

	if [ -n $2 ]
	then
		printf "$y_n\n TAR -------->$w_l $1$g_l $txt_as$w_l $1.tar.gz$rs_"
	fi

	erg=$(tar zcf $1.tar.gz $1 $2)

	if [ -f "$1.tar.gz" ]
	then
		printf "$p_n$txt_done$rs_\n"

		if [ -f "$adir/$1.tar.gz" ]
		then
			rm -rf "$adir/$1.tar.gz"
			mv -f "$1.tar.gz" "$adir"
			printf "$c_l"" MOVE -------> $p_l$1.tar.gz $g_l$txt_to $y_n$workdir/archive$rs_\n\n"
		else
			mv -f "$1.tar.gz" "$adir"
			printf "$c_l"" MOVE -------> $p_l$1.tar.gz $g_l$txt_to $y_n$workdir/archive$rs_\n\n"
		fi

	else
		printf "$r_l\nerror\n no $1.tar.gz\n created$rs_\n"
	fi
}

tar_repo(){
	cd "$workdir"
	rev="$($(USEGIT) && printf "$(COMMIT)" || printf "$(REVISION)")"

	if [ -f "${repodir}/config.sh" ]
	then
		cp -f "${repodir}/config.sh" "$configdir/config.sh.master"
		[ -f "${repodir}/Makefile" ] && cp -f "${repodir}/Makefile" "$configdir/Makefile.master"
		printf "$w_l  ${REPO^^} Backup    :$c_l "
		tar -zcf "$brepo/$rev.tar.gz" oscam-${REPO}
	fi

	cd "$brepo"
	ln -frs "$brepo/$rev.tar.gz" "last${REPO}.tar.gz"
	printf "done$re_\n\n"
}

untar_repo(){
	cd "$workdir"

	[ -d oscam-${REPO} ] && rm -rf oscam-${REPO};
	if [ -z "$1" ]
	then
		[ -f "$brepo/last${REPO}.tar.gz" ] && tar -xf "$brepo/last${REPO}.tar.gz"
		printf "\e[1A $w_l ${REPO^^} Revision  : $c_l$(basename $(readlink -f $brepo/last${REPO}.tar.gz) .tar.gz)$w_l\n"
	else
		if [ -f "$brepo/$1.tar.gz" ]
		then
			tar -xf "$brepo/$1.tar.gz"
			cd $brepo
			ln -frs "$brepo/$($(USEGIT) && printf "$(COMMIT)" || printf "$(REVISION)").tar.gz" "last${REPO}.tar.gz"
			printf "\e[1A $w_l ${REPO^^} Revision  : $c_l$(basename $(readlink -f $brepo/last${REPO}.tar.gz) .tar.gz)$w_l\n"
		else
			if [ -f "$brepo/last${REPO}.tar.gz" ]
			then
				tar -xf "$brepo/last${REPO}.tar.gz"
				printf "\e[1A $w_l ${REPO^^} Revision  : $c_l$(basename $(readlink -f $brepo/last${REPO}.tar.gz) .tar.gz)$w_l\n"
			else
				printf "$w_l  ${REPO^^} Backup    :$r_l $txt_not_found\n"
				sleep 3
				checkout
			fi
		fi
	fi

	[ -f "$workdir/${REPO^^}-IS-PATCHED" ] && rm -f "$workdir/${REPO^^}-IS-PATCHED"
}
