summaryrefslogtreecommitdiff
blob: c890b89f3187e2a07f243ec1f597241797620ee3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

start() {
	# Ensure that we have a hostname binary or function
	source /lib/rcscripts/net.modules.d/helpers.d/functions
	
	local myhost=$(hostname 2>/dev/null)
	local retval=0

	# If the hostname is already set via the kernel, and /etc/hostname 
	# isn't setup, then we shouldn't go reseting the configuration #38172.
	if [[ -z ${myhost} ]] || [[ ${myhost} == "(none)" ]] ; then
		myhost="localhost"
	fi

	if [[ -f /etc/hostname ]] ; then
		ewarn $"You should stop using /etc/hostname and use /etc/conf.d/hostname"
		myhost=$(</etc/hostname)
	else
		myhost=${HOSTNAME}
	fi

	ebegin $"Setting hostname to" ${myhost}
	hostname "${myhost}"
	retval=$?
	eend ${retval} $"Failed to set the hostname"

	if [[ ${retval} -eq 0 ]] ; then
		# setup $HOSTNAME, ignore errors in case /etc is readonly.
		echo "HOSTNAME=\"${myhost}\"" 2>/dev/null > /etc/env.d/01hostname
	fi

	return ${retval}
}

# vim:ts=4