summary refs log tree commit diff
path: root/noarch/pre_install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'noarch/pre_install.sh')
-rwxr-xr-xnoarch/pre_install.sh140
1 files changed, 140 insertions, 0 deletions
diff --git a/noarch/pre_install.sh b/noarch/pre_install.sh
new file mode 100755
index 0000000..fd04a16
--- /dev/null
+++ b/noarch/pre_install.sh
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+compare_insensitive() {
+	echo "$1" | grep -qi "^${2}$"
+}
+
+detect_legacy_uld() {
+	if ! [ -d "/opt" ] ; then
+		return 1
+	fi
+
+	for i in $( ls "/opt" ) ; do
+		if compare_insensitive $i $VENDOR ; then
+			if [ -s "/opt/$i/mfp/uninstall/guiuninstall" ]; then
+				LEGACY_ULD_NAME="$i"
+				return 0
+			fi
+		fi
+	done
+	return 1
+}
+
+# lecence file finding
+find_eula_file() {
+	EULA_DIR="${DIST_DIR}/noarch/license"
+	log_variable EULA_DIR
+
+	EULA_LOCALE="${LC_ALL:-${LC_MESSAGES:-${LANG}}}"
+	EULA_LOCALE=`echo "${EULA_LOCALE}" | tr A-Z a-z`
+	log_variable EULA_LOCALE
+
+	while [ -n "${EULA_LOCALE}" ] ; do
+		EULA_FILE="${EULA_DIR}/eula-${EULA_LOCALE}.txt"
+		#log_variable EULA_FILE
+		if [ -r "${EULA_FILE}" ] ; then break ; fi
+		EULA_LOCALE=`echo "${EULA_LOCALE}" | sed 's/.$//'` # drop last symbol
+	done
+	log_variable EULA_LOCALE
+	if [ -z "${EULA_LOCALE}" ] ; then
+		EULA_FILE="${EULA_DIR}/eula.txt"
+		if [ ! -r "${EULA_FILE}" ] ; then
+			EULA_FILE=""
+		fi
+	fi
+
+	log_variable EULA_FILE
+	echo "${EULA_FILE}"
+}
+
+show_license() {
+	EULA_FILE=`find_eula_file`
+	EULA_PAGER="${PAGER:-`which more`}"
+	log_variable EULA_PAGER
+
+	if [ -n "${EULA_FILE}" -a -n "${EULA_PAGER}" ] ; then
+		ICONV_BINARY=`which iconv`
+		# show EULA:
+		show_cut_line
+		if [ -z "${SKIP_EULA_PAGER}" ] ; then
+			if [ -n "$ICONV_BINARY" ] ; then
+				cat "${EULA_FILE}" | "${ICONV_BINARY}" -c -f "UTF-8" | ${EULA_PAGER}
+			else
+				"${EULA_PAGER}" "${EULA_FILE}"
+			fi
+		fi
+
+		show_cut_line
+
+		# ask for agreement:
+		output_blank_line
+		show_nls_message_no_nl "**** Do you agree ? [y/n] : "
+		if [ -z "${AGREE_EULA}" ] ; then
+			read AGREE_EULA
+		fi
+		if [ "y" != "${AGREE_EULA}" ] && [ "Y" != "${AGREE_EULA}" ] ; then
+			show_nls_message "**** Terminated by user"
+			exit 1
+		fi
+	fi
+}
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+SCRIPTS_DIR="$(dirname "$0")"
+
+# load 'scripting' run-time support utility functions
+. "${SCRIPTS_DIR}/scripting_utils"
+
+# load 'package' run-time support utility functions
+. "${SCRIPTS_DIR}/package_utils"
+environment_init "$(basename "$0" ".sh")"
+
+
+UNINSTALLMODE=
+while [ -n "$1" ]; do
+	case "$1" in
+	-u) UNINSTALLMODE=1 ;;
+	vendor=*) specify_vendor "${1#vendor=}" ;;
+	esac
+	shift
+done
+
+if ! have_root_permissions ; then
+	show_nls_message "**** Root privileges are required"
+	exit 1
+fi
+
+if [ "$UNINSTALLMODE" ]; then
+	show_nls_message "**** Running uninstall ..."
+else
+	show_nls_message "**** Running install ..."
+fi
+show_nls_message_no_nl "**** Press 'Enter' to continue or 'q' and then 'Enter' to quit. : "
+if [ -z "${QUIT_INSTALL}" ] ; then
+	read QUIT_INSTALL
+fi
+if [ "q" = "${QUIT_INSTALL}" ] || [ "Q" = "${QUIT_INSTALL}" ] ; then
+	show_nls_message "**** Terminated by user"
+	exit 1
+fi
+
+LEGACY_ULD_NAME=
+if detect_legacy_uld ; then
+	show_nls_message "**** Old version of Unified Linux Driver is detected."
+	show_nls_message "**** In order to continue the installation, please remove old version."
+	show_nls_message_no_nl "**** If you want to delete old version press 'y'. To finish the installation press 'Enter'. : "
+	if [ -z "${UNINSTALL_LECAGY}" ] ; then
+		read UNINSTALL_LECAGY
+	fi
+	if [ "y" = "${UNINSTALL_LECAGY}" ] || [ "Y" = "${UNINSTALL_LECAGY}" ] ; then
+		"/opt"/${LEGACY_ULD_NAME}/mfp/uninstall/uninstall.sh -t
+	else
+		show_nls_message "**** Terminated by user"
+		exit 1
+	fi
+fi
+
+if ! [ "$UNINSTALLMODE" ]; then
+	show_license
+fi