#!/bin/sh

# Display usage
cpack_usage()
{
	cat <<EOF
Usage: $0 [options]
Options: [defaults in brackets after descriptions]
	--help            print this message
	--prefix=dir      directory in which to install
	--include-subdir  include the @CPACK_PACKAGE_FILE_NAME@ subdirectory
	--exclude-subdir  exclude the @CPACK_PACKAGE_FILE_NAME@ subdirectory
	--skip-license    skip license confirmation
	--skip-assets     skipp assets installation
	--version         print version info
EOF
	exit 1
}

cpack_echo_exit()
{
	echo $1
	exit 1
}

# Display version
cpack_version()
{
	echo "@CPACK_PACKAGE_NAME@ Installer Version: @CPACK_PACKAGE_VERSION@, Copyright (c) @CPACK_PACKAGE_VENDOR@"
}

# Helper function to fix windows paths.
cpack_fix_slashes()
{
	echo "$1" | sed 's/\\/\//g'
}

interactive=TRUE
cpack_skip_license=FALSE
cpack_skip_assets=FALSE
cpack_include_subdir=""
for a in "$@CPACK_AT_SIGN@"; do
	if echo $a | grep "^--prefix=" > /dev/null 2> /dev/null; then
		cpack_prefix_dir=`echo $a | sed "s/^--prefix=//"`
		cpack_prefix_dir=`cpack_fix_slashes "${cpack_prefix_dir}"`
	fi
	if echo $a | grep "^--help" > /dev/null 2> /dev/null; then
		cpack_usage
	fi
	if echo $a | grep "^--version" > /dev/null 2> /dev/null; then
		cpack_version
		exit 2
	fi
	if echo $a | grep "^--include-subdir" > /dev/null 2> /dev/null; then
		cpack_include_subdir=TRUE
	fi
	if echo $a | grep "^--exclude-subdir" > /dev/null 2> /dev/null; then
		cpack_include_subdir=FALSE
	fi
	if echo $a | grep "^--skip-license" > /dev/null 2> /dev/null; then
		cpack_skip_license=TRUE
	fi
	if echo $a | grep "^--skip-assets" > /dev/null 2> /dev/null; then
		cpack_skip_assets=TRUE
	fi
done

if [ "x${cpack_include_subdir}x" != "xx" -o "x${cpack_skip_license}x" = "xTRUEx" ]
then
	interactive=FALSE
fi

cpack_version
echo "This is a self-extracting archive."
toplevel="`pwd`"
if [ "x${cpack_prefix_dir}x" != "xx" ]
then
	toplevel="${cpack_prefix_dir}"
fi

echo "The archive will be extracted to: ${toplevel}"

if [ "x${interactive}x" = "xTRUEx" ]
then
	echo ""
	echo "If you want to stop extracting, please press <ctrl-C>."

	if [ "x${cpack_skip_license}x" != "xTRUEx" ]
	then
		more << '____cpack__here_doc____'
@CPACK_RESOURCE_FILE_LICENSE_CONTENT@
____cpack__here_doc____
		echo
		echo "Do you accept the license? [yN]: "
		read line leftover
		case ${line} in
			y* | Y*)
				cpack_license_accepted=TRUE;;
			*)
				echo "License not accepted. Exiting ..."
				exit 1;;
		esac
	fi

	if [ "x${cpack_include_subdir}x" = "xx" ]
	then
		echo "By default the @CPACK_PACKAGE_NAME@ will be installed in:"
		echo "  \"${toplevel}/@CPACK_PACKAGE_FILE_NAME@\""
		echo "Do you want to include the subdirectory @CPACK_PACKAGE_FILE_NAME@?"
		echo "Saying no will install in: \"${toplevel}\" [Yn]: "
		read line leftover
		cpack_include_subdir=TRUE
		case ${line} in
			n* | N*)
				cpack_include_subdir=FALSE
		esac
	fi
fi

if [ "x${cpack_include_subdir}x" = "xTRUEx" ]
then
	toplevel="${toplevel}/@CPACK_PACKAGE_FILE_NAME@"
	mkdir -p "${toplevel}"
fi


cpack_downloader() {
	if [ -f /usr/bin/curl ]; then
		curl -O $1
	else
		wget $1
	fi
}

checksum=`mktemp`
cat >$checksum <<'EOF'
41cbbc1afb8438bc8fc74a64a171685550888856005111cbf9af5255f659ae36  et-linux-2.60.x86.run
EOF

if [ "x${interactive}x" = "xTRUEx" ]
then
	if [ "x${cpack_skip_assets}x" != "xTRUEx" ]
	then
		echo
		echo "Do you want to fetch the assets data files? [yN]: "
		read line leftover
		case ${line} in
			y* | Y*)
				echo
				echo "Fetching Wolf:ET assets data files..."
				if [ ! -f et-linux-2.60.x86.run ]
				then
					cpack_downloader http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/et/linux/et-linux-2.60.x86.run
				fi
				echo "Verifying assets data files integrity"
				sha256sum -c $checksum || exit 1
				echo "Installing assets..."
				chmod +x et-linux-2.60.x86.run
				./et-linux-2.60.x86.run --noexec --target ${toplevel}
				rm -rf ${toplevel}/{bin,Docs,README,pb,openurl.sh,CHANGES,ET.xpm} ${toplevel}/setup.{data,sh} ${toplevel}/etmain/{*.cfg,*.so,*.txt,*.dat,mp_bin.pk3}
				echo
				echo "Do you want to delete downloaded Wolf:ET assets data files? [yN]: "
				read line leftover
				case ${line} in
					y* | Y*)
						rm -f et-linux-2.60.x86.run;;
				esac
				;;
			*)
				echo "Assets not installed.";;
		esac
	fi
fi

echo
echo "Using target directory: ${toplevel}"
echo "Extracting, please wait..."
echo ""

# take the archive portion of this file and pipe it to tar
# the NUMERIC parameter in this command should be one more
# than the number of lines in this header file
# there are tails which don't understand the "-n" argument, e.g. on SunOS
# OTOH there are tails which complain when not using the "-n" argument (e.g. GNU)
# so at first try to tail some file to see if tail fails if used with "-n"
# if so, don't use "-n"
use_new_tail_syntax="-n"
tail $use_new_tail_syntax +1 "$0" > /dev/null 2> /dev/null || use_new_tail_syntax=""

tail $use_new_tail_syntax +###CPACK_HEADER_LENGTH### "$0" | gunzip | (cd "${toplevel}" && tar xf -) || cpack_echo_exit "Problem unpacking the @CPACK_PACKAGE_FILE_NAME@"

echo "Unpacking finished successfully"

exit 0
#-----------------------------------------------------------
#      Start of TAR.GZ file
#-----------------------------------------------------------;

