From: Michael Prokop Date: Thu, 12 Jan 2012 23:58:34 +0000 (+0100) Subject: grml-hostname: improve regex for hostname matching [Closes: issue1005] X-Git-Tag: v2.0.5~1 X-Git-Url: http://git.grml.org/?p=grml-scripts.git;a=commitdiff_plain;h=3ea7b7562e8e55bc5a1d81b561d494266e5f9845 grml-hostname: improve regex for hostname matching [Closes: issue1005] Do not trust on output of hostname(1) as this might not necessarily be what's used inside /etc/hosts. This is supposed to work on Grml systems as well as on Debian. While at it also use same formating WRT whitespace chars when replacing the localhost line(s). --- diff --git a/usr_sbin/grml-hostname b/usr_sbin/grml-hostname index d512823..e97c353 100755 --- a/usr_sbin/grml-hostname +++ b/usr_sbin/grml-hostname @@ -41,14 +41,16 @@ case $retval in 0) echo "$NEW_HOSTNAME" > /etc/hostname echo "$NEW_HOSTNAME" > /etc/mailname - sed -i "s/^127.0.0.1[ \t]*$OLDHOSTNAME[ \t]*localhost/127.0.0.1 $NEW_HOSTNAME localhost/" /etc/hosts - sed -i "s/^::1[ \t]*ip6-localhost ip6-loopback[ \t]*$OLDHOSTNAME/::1 ip6-localhost ip6-loopback $NEW_HOSTNAME/" /etc/hosts + sed -ir "s/^\(127.0.0.1\s*\).*localhost.*/\1$NEW_HOSTNAME localhost/" /etc/hosts + sed -ir "s/^\(::1\s*\).*ip6-localhost.*/\1ip6-localhost ip6-loopback $NEW_HOSTNAME/" /etc/hosts + POSTFIX='' if [ -r /etc/postfix/main.cf ] ; then sed -i "s/^mydestination = .*/mydestination = $NEW_HOSTNAME, localhost, localhost.localdomain/" /etc/postfix/main.cf && \ sed -i "s/^myhostname = .*/myhostname = $NEW_HOSTNAME/" /etc/postfix/main.cf && POSTFIX=' Configuration of myhostname in /etc/postfix/main.cf has been adjusted as well. Do not forget to restart postfix if necessary.' fi + if [ -n "$DISPLAY" ] ; then if sudo -u $RUNASUSER xauth add $(xauth -n list | grep "${OLDHOSTNAME}/unix:0" | sed "s|${OLDHOSTNAME}/unix:0|${NEW_HOSTNAME}/unix:0|") ; then sudo -u $RUNASUSER xauth remove "${OLDHOSTNAME}/unix:0"