From 4dd67fa4ffb704f695ace2b62f3a54ccf1d43ee9 Mon Sep 17 00:00:00 2001
From: Dieter Plaetinck <dieter@plaetinck.be>
Date: Sun, 8 Mar 2009 17:33:31 +0100
Subject: automatically update hostname in /etc/hosts after updating
 /etc/rc.conf.  See FS#11416

---
 src/core/libs/lib-ui-interactive.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

(limited to 'src')

diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh
index 42a2fd5..b9d5469 100644
--- a/src/core/libs/lib-ui-interactive.sh
+++ b/src/core/libs/lib-ui-interactive.sh
@@ -53,6 +53,17 @@ interactive_configure_system()
 		else                                                #regular file
 			$EDITOR ${var_TARGET_DIR}${FILE}
 		fi
+
+		# if user edited /etc/rc.conf, add the hostname to /etc/hosts if it's not already there.
+		# note that if the user edits rc.conf several times to change the hostname more then once, we will add them all to /etc/hosts.  this is not perfect, but to avoid this, too much code would be required (feel free to prove me wrong :))
+		if [ "$FILE" = "/etc/rc.conf" ]
+		then
+			HOSTNAME=`sed -n '/^HOSTNAME/s/HOSTNAME=//p' ${var_TARGET_DIR}${FILE} | sed 's/"//'`
+			if ! grep '127\.0\.0\.1' ${var_TARGET_DIR}/etc/hosts | grep -q "$HOSTNAME"
+			then
+				sed -i "s/127\.0\.0\.1.*/& $HOSTNAME/" ${var_TARGET_DIR}/etc/hosts
+			fi
+		fi
 	done
 
 	# temporary backup files are not useful anymore past this point.
-- 
cgit v1.2.3-54-g00ecf