about summary refs log tree commit diff stats
path: root/scripts/install-cfg.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/install-cfg.sh')
-rwxr-xr-xscripts/install-cfg.sh86
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/install-cfg.sh b/scripts/install-cfg.sh
new file mode 100755
index 00000000..bd8129f6
--- /dev/null
+++ b/scripts/install-cfg.sh
@@ -0,0 +1,86 @@
+#!/bin/sh
+# $LynxId: install-cfg.sh,v 1.3 2008/09/10 13:15:35 tom Exp $
+# install lynx.cfg, ensuring the old config-file is saved to a unique file,
+# and prepending customizations to the newly-installed file.
+#
+# $1 = install program
+# $2 = file to install
+# $3 = where to install it
+PRG="$1"
+SRC=$2
+DST=$3
+
+LANG=C;		export LANG
+LC_ALL=C;	export LC_ALL
+LC_CTYPE=C;	export LC_CTYPE
+LANGUAGE=C;	export LANGUAGE
+
+if test -f "$DST" ; then
+	echo "** checking if you have customized $DST"
+	OLD=lynx-cfg.old
+	NEW=lynx-cfg.new
+	TST=lynx-cfg.tst
+	TMP=lynx-cfg.tmp
+	trap "rm -f $OLD $NEW $TST $TMP; exit 9" 1 2 5 15
+	rm -f $OLD $NEW $TST $TMP
+
+	# avoid propagating obsolete URLs into new installs
+	echo lynx.browser.org >$TMP
+	echo www.trill-home.com >>$TMP
+	echo www.cc.ukans.edu >>$TMP
+	echo www.ukans.edu >>$TMP
+	echo www.slcc.edu >>$TMP
+	echo sol.slcc.edu >>$TMP
+
+	# Make a list of the settings which are in the original lynx.cfg
+	# Do not keep the user's HELPFILE setting since we modify that in
+	# a different makefile rule.
+	egrep '^[ 	]*[A-Za-z]' $SRC |sed -e 's/^[ 	]*HELPFILE:.*/HELPFILE:/' >>$TMP
+	egrep '^[ 	]*[A-Za-z]' $SRC |fgrep -v -f $TMP >$OLD
+	egrep '^[ 	]*[A-Za-z]' $DST |fgrep -v -f $TMP >$TST
+
+	if test -s $TST ; then
+		cat >$TMP <<EOF
+## The following lines were saved from your previous configuration.
+
+EOF
+		cat $TST >>$TMP
+		cat $SRC >$NEW
+		cat $TMP >>$NEW
+
+		# See if we have saved this information before (ignoring the
+		# HELPFILE line).
+		if cmp -s $NEW $OLD
+		then
+			echo "... installed $DST would not be changed"
+		else
+			NUM=1
+			while test -f ${DST}-${NUM}
+			do
+				if cmp -s $NEW ${DST}-${NUM}
+				then
+					break
+				fi
+				NUM=`expr $NUM + 1`
+			done
+			if test ! -f ${DST}-${NUM}
+			then
+				echo "... saving old config as ${DST}-${NUM}"
+				mv $DST ${DST}-${NUM} || exit 1
+			fi
+			echo "** installing $NEW as $DST"
+			eval $PRG $NEW $DST || exit 1
+		fi
+	else
+		echo "... no customizations found"
+		echo "** installing $SRC as $DST"
+		eval $PRG $SRC $DST || exit 1
+	fi
+	rm -f $SKIP $OLD $NEW $TST $TMP
+elif cmp -s $SRC $DST
+then
+	echo "... installed $DST would not be changed"
+else
+	echo "** installing $SRC as $DST"
+	eval $PRG $SRC $DST || exit 1
+fi