mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 22:30:13 -06:00
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.
150 lines
4.0 KiB
Bash
Executable File
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
|
|
#-----------------------------------------------------------;
|