#!/bin/sh # Filename: grml-hostname # Purpose: simple frontend to set hostname # Authors: (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. # Latest change: Sam Sep 30 12:36:24 CEST 2006 [mika] ################################################################################ if [ $UID != 0 ] ; then echo Error: become root before starting $0 >& 2 exit 100 fi PN='grml-hostname' TMP=$(mktemp) OLDHOSTNAME="$(hostname)" if [ -x /usr/bin/random-hostname ] ; then HOSTNAME="$(/usr/bin/random-hostname)" else HOSTNAME="$(hostname)" fi bailout() { rm -f $TMP exit 1 } trap bailout 1 2 3 15 # running inside grml2hd? Don't warn because of hostname + X [ -n "$GRML2HD" ] || MSG='\n\nNotice: setting a different hostname while running X is *not* recommend!' HOSTNAME="$(dialog --stdout --title "${PN}" --extra-button --extra-label "Propose hostname" \ --inputbox "Set hostname (/etc/hostname, /etc/hosts and /etc/postfix/main.cf will be adjusted)\ \n\nTip: press 'Propose hostname' for another proposal${MSG}" 14 70 $HOSTNAME)" retval=$? case $retval in 0) if hostname "$HOSTNAME" 1>/dev/null 2>${TMP} ; then echo "$HOSTNAME" > /etc/hostname sed -i "s/^127.0.0.1[ \t]*$OLDHOSTNAME[ \t]*localhost/127.0.0.1 $HOSTNAME localhost/" /etc/hosts sed -i "s/^::1[ \t]*ip6-localhost ip6-loopback[ \t]*$OLDHOSTNAME/::1 ip6-localhost ip6-loopback $HOSTNAME/" /etc/hosts POSTFIX='' if [ -r /etc/postfix/main.cf ] ; then sed -i "s/^myhostname = .*/myhostname = $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 dialog --stdout --title "${PN}" --msgbox "Setting hostname to $HOSTNAME was successful.$POSTFIX" 0 0 else dialog --stdout --title "${PN}" --msgbox "Error when setting hostname to $HOSTNAME: `cat $TMP`" 0 0 fi ;; 1) echo "Cancel pressed." ;; 3) $0 ;; 255) echo "ESC pressed." ;; esac rm -f $TMP 2>/dev/null ## END OF FILE #################################################################