xref: /freebsd/usr.sbin/bsdinstall/scripts/hostname (revision be99b538183ac4c115a20d585190db90fa2ede9c)
12118f387SNathan Whitehorn#!/bin/sh
22118f387SNathan Whitehorn#-
32118f387SNathan Whitehorn# Copyright (c) 2011 Nathan Whitehorn
405b1c425SDevin Teske# Copyright (c) 2015-2018 Devin Teske
52118f387SNathan Whitehorn# All rights reserved.
62118f387SNathan Whitehorn#
72118f387SNathan Whitehorn# Redistribution and use in source and binary forms, with or without
82118f387SNathan Whitehorn# modification, are permitted provided that the following conditions
92118f387SNathan Whitehorn# are met:
102118f387SNathan Whitehorn# 1. Redistributions of source code must retain the above copyright
112118f387SNathan Whitehorn#    notice, this list of conditions and the following disclaimer.
122118f387SNathan Whitehorn# 2. Redistributions in binary form must reproduce the above copyright
132118f387SNathan Whitehorn#    notice, this list of conditions and the following disclaimer in the
142118f387SNathan Whitehorn#    documentation and/or other materials provided with the distribution.
152118f387SNathan Whitehorn#
162118f387SNathan Whitehorn# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
172118f387SNathan Whitehorn# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
182118f387SNathan Whitehorn# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
192118f387SNathan Whitehorn# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
202118f387SNathan Whitehorn# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
212118f387SNathan Whitehorn# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
222118f387SNathan Whitehorn# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
232118f387SNathan Whitehorn# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
242118f387SNathan Whitehorn# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
252118f387SNathan Whitehorn# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
262118f387SNathan Whitehorn# SUCH DAMAGE.
272118f387SNathan Whitehorn#
282118f387SNathan Whitehorn# $FreeBSD$
2905b1c425SDevin Teske#
3005b1c425SDevin Teske############################################################ INCLUDES
312118f387SNathan Whitehorn
3205b1c425SDevin TeskeBSDCFG_SHARE="/usr/share/bsdconfig"
3305b1c425SDevin Teske. $BSDCFG_SHARE/common.subr || exit 1
3405b1c425SDevin Teskef_dprintf "%s: loading_includes..." "$0"
3505b1c425SDevin Teskef_include $BSDCFG_SHARE/dialog.subr
362118f387SNathan Whitehorn
3705b1c425SDevin Teske############################################################ CONFIGURATION
382118f387SNathan Whitehorn
3905b1c425SDevin Teske#
4005b1c425SDevin Teske# Default value
4105b1c425SDevin Teske#
4205b1c425SDevin Teske: ${HOSTNAME=$( hostname )}
432118f387SNathan Whitehorn
4405b1c425SDevin Teske#
4505b1c425SDevin Teske# Default file to store hostname entry in
4605b1c425SDevin Teske#
4705b1c425SDevin Teske: ${HOSTNAMEFILE:=$BSDINSTALL_TMPETC/rc.conf.hostname}
4805b1c425SDevin Teske
4905b1c425SDevin Teske############################################################ GLOBALS
5005b1c425SDevin Teske
5105b1c425SDevin Teske#
5205b1c425SDevin Teske# Strings that should be moved to an i18n file and loaded with f_include_lang()
5305b1c425SDevin Teske#
5405b1c425SDevin Teskemsg_freebsd_installer="FreeBSD Installer"
55*be99b538SDevin Teskemsg_ok="OK"
56*be99b538SDevin Teskemsg_please_choose_a_hostname="Please choose a hostname for this machine.\n\nIf you are running on a managed network, please ask\nyour network administrator for an appropriate name."
57*be99b538SDevin Teskemsg_set_hostname="Set Hostname"
5805b1c425SDevin Teske
596fd587f9SDevin Teske#
606fd587f9SDevin Teske# Command strings for various tasks
616fd587f9SDevin Teske#
626fd587f9SDevin TeskeECHO_OVERWRITE='echo "%s" > "%s"'
636fd587f9SDevin TeskeSET_HOSTNAME='hostname -s "%s"'
646fd587f9SDevin Teske
6505b1c425SDevin Teske############################################################ FUNCTIONS
6605b1c425SDevin Teske
6705b1c425SDevin Teske# dialog_hostname
6805b1c425SDevin Teske#
6905b1c425SDevin Teske# Display input box (without cancel button) for user to enter desired hostname.
7005b1c425SDevin Teske#
7105b1c425SDevin Teskedialog_hostname()
7205b1c425SDevin Teske{
7305b1c425SDevin Teske	local prompt="$msg_please_choose_a_hostname"
7405b1c425SDevin Teske	local hline=
7505b1c425SDevin Teske	local value="$*"
7605b1c425SDevin Teske
7705b1c425SDevin Teske	local height width
7805b1c425SDevin Teske	f_dialog_inputbox_size height width \
7905b1c425SDevin Teske		"$DIALOG_TITLE" "$DIALOG_BACKTITLE" "$prompt" "$value" "$hline"
8005b1c425SDevin Teske
8105b1c425SDevin Teske	$DIALOG \
8205b1c425SDevin Teske		--title "$DIALOG_TITLE" \
8305b1c425SDevin Teske		--backtitle "$DIALOG_BACKTITLE" \
8405b1c425SDevin Teske		--hline "$hline" \
8505b1c425SDevin Teske		--ok-label "$msg_ok" \
8605b1c425SDevin Teske		--no-cancel \
8705b1c425SDevin Teske		--inputbox "$prompt" \
8805b1c425SDevin Teske		$height $width "$value" \
8905b1c425SDevin Teske		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
9005b1c425SDevin Teske}
9105b1c425SDevin Teske
9205b1c425SDevin Teske############################################################ MAIN
9305b1c425SDevin Teske
9405b1c425SDevin Teske#
9505b1c425SDevin Teske# Initialize
9605b1c425SDevin Teske#
9705b1c425SDevin Teskef_dialog_title "$msg_set_hostname"
9805b1c425SDevin Teskef_dialog_backtitle "$msg_freebsd_installer"
9905b1c425SDevin Teske
10005b1c425SDevin Teske#
10105b1c425SDevin Teske# Get user input
10205b1c425SDevin Teske#
10305b1c425SDevin TeskeHOSTNAME=$( dialog_hostname "$HOSTNAME" )
10405b1c425SDevin Teske[ $? -eq $DIALOG_CANCEL ] && exit 1
10505b1c425SDevin Teske
10605b1c425SDevin Teske#
10705b1c425SDevin Teske# Store the user's choice
10805b1c425SDevin Teske#
1096fd587f9SDevin Teskef_eval_catch "$pgm" echo "$ECHO_OVERWRITE" \
1106fd587f9SDevin Teske	'hostname=\"$HOSTNAME\"' "$HOSTNAMEFILE"
111cc478f6fSDevin Teskeretval=$?
11205b1c425SDevin Teske
11305b1c425SDevin Teske#
11405b1c425SDevin Teske# Activate entry if configured
11505b1c425SDevin Teske#
116cc478f6fSDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then
1176fd587f9SDevin Teske	f_eval_catch "$pgm" hostname "$SET_HOSTNAME" "$HOSTNAME"
118cc478f6fSDevin Teske	retval=$?
1192118f387SNathan Whitehornfi
12005b1c425SDevin Teske
121cc478f6fSDevin Teskeexit $retval
12205b1c425SDevin Teske
12305b1c425SDevin Teske################################################################################
12405b1c425SDevin Teske# END
12505b1c425SDevin Teske################################################################################
126