Files
CMake/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
sidju 4c8741eb86 CPack/STGZ: Require explicit acceptance or refusal of license
To make using the generated STGZ easier, require a specific answer to
accepting the license terms.  Since more moves down one line when '\n'
is entered a user may hold enter to paginate through the document. This
change prevents the user from accidentally refusing the license terms by
holding enter for too long and having to start over.
2019-08-23 11:04:26 -04:00

150 lines
4.0 KiB
Bash
Executable File

#!/bin/sh
# Display usage
cpack_usage()
{
cat <<EOF
Usage: $0 [options]
Options: [defaults in brackets after descriptions]
--help print this message
--version print cmake installer version
--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 accept license
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_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
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
while true
do
echo "Do you accept the license? [yn]: "
read line leftover
case ${line} in
y* | Y*)
cpack_license_accepted=TRUE
break;;
n* | N* | q* | Q* | e* | E*)
echo "License not accepted. Exiting ..."
exit 1;;
esac
done
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
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=""
extractor="pax -r"
command -v pax > /dev/null 2> /dev/null || extractor="tar xf -"
tail $use_new_tail_syntax +###CPACK_HEADER_LENGTH### "$0" | gunzip | (cd "${toplevel}" && ${extractor}) || cpack_echo_exit "Problem unpacking the @CPACK_PACKAGE_FILE_NAME@"
echo "Unpacking finished successfully"
exit 0
#-----------------------------------------------------------
# Start of TAR.GZ file
#-----------------------------------------------------------;