xref: /freebsd/usr.sbin/bsdinstall/scripts/hostname (revision e44751530e04ef8326ff22c0d3f7d880c82d3395)
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#
2805b1c425SDevin Teske#
2905b1c425SDevin Teske############################################################ INCLUDES
302118f387SNathan Whitehorn
3105b1c425SDevin TeskeBSDCFG_SHARE="/usr/share/bsdconfig"
3205b1c425SDevin Teske. $BSDCFG_SHARE/common.subr || exit 1
3305b1c425SDevin Teskef_dprintf "%s: loading_includes..." "$0"
3405b1c425SDevin Teskef_include $BSDCFG_SHARE/dialog.subr
352118f387SNathan Whitehorn
3605b1c425SDevin Teske############################################################ CONFIGURATION
372118f387SNathan Whitehorn
3805b1c425SDevin Teske#
3905b1c425SDevin Teske# Default value
4005b1c425SDevin Teske#
4105b1c425SDevin Teske: ${HOSTNAME=$( hostname )}
422118f387SNathan Whitehorn
4305b1c425SDevin Teske#
4405b1c425SDevin Teske# Default file to store hostname entry in
4505b1c425SDevin Teske#
4605b1c425SDevin Teske: ${HOSTNAMEFILE:=$BSDINSTALL_TMPETC/rc.conf.hostname}
4705b1c425SDevin Teske
4805b1c425SDevin Teske############################################################ GLOBALS
4905b1c425SDevin Teske
5005b1c425SDevin Teske#
5105b1c425SDevin Teske# Strings that should be moved to an i18n file and loaded with f_include_lang()
5205b1c425SDevin Teske#
53cc42ef53SBrad Davismsg_freebsd_installer="$OSNAME Installer"
54be99b538SDevin Teskemsg_ok="OK"
55be99b538SDevin 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."
56be99b538SDevin Teskemsg_set_hostname="Set Hostname"
5705b1c425SDevin Teske
586fd587f9SDevin Teske#
596fd587f9SDevin Teske# Command strings for various tasks
606fd587f9SDevin Teske#
616fd587f9SDevin TeskeECHO_OVERWRITE='echo "%s" > "%s"'
626fd587f9SDevin TeskeSET_HOSTNAME='hostname -s "%s"'
636fd587f9SDevin Teske
6405b1c425SDevin Teske############################################################ FUNCTIONS
6505b1c425SDevin Teske
6605b1c425SDevin Teske# dialog_hostname
6705b1c425SDevin Teske#
6805b1c425SDevin Teske# Display input box (without cancel button) for user to enter desired hostname.
6905b1c425SDevin Teske#
7005b1c425SDevin Teskedialog_hostname()
7105b1c425SDevin Teske{
7205b1c425SDevin Teske	local prompt="$msg_please_choose_a_hostname"
735f3ec44eSAlfonso S. Siciliano	local hline=
7405b1c425SDevin Teske	local value="$*"
7505b1c425SDevin Teske
76*e4475153SAlfonso S. Siciliano	local height width
77*e4475153SAlfonso S. Siciliano	f_dialog_inputbox_size height width \
78*e4475153SAlfonso S. Siciliano		"$DIALOG_TITLE" "$DIALOG_BACKTITLE" "$prompt" "$value" "$hline"
79*e4475153SAlfonso S. Siciliano
80*e4475153SAlfonso S. Siciliano	$DIALOG \
8105b1c425SDevin Teske		--title "$DIALOG_TITLE"         \
8205b1c425SDevin Teske		--backtitle "$DIALOG_BACKTITLE" \
8305b1c425SDevin Teske		--hline "$hline"                \
8405b1c425SDevin Teske		--ok-label "$msg_ok"            \
8505b1c425SDevin Teske		--no-cancel                     \
8605b1c425SDevin Teske		--inputbox "$prompt"            \
87*e4475153SAlfonso S. Siciliano		$height $width "$value"         \
8805b1c425SDevin Teske		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
8905b1c425SDevin Teske}
9005b1c425SDevin Teske
9105b1c425SDevin Teske############################################################ MAIN
9205b1c425SDevin Teske
9305b1c425SDevin Teske#
9405b1c425SDevin Teske# Initialize
9505b1c425SDevin Teske#
9605b1c425SDevin Teskef_dialog_title "$msg_set_hostname"
9705b1c425SDevin Teskef_dialog_backtitle "$msg_freebsd_installer"
9805b1c425SDevin Teske
9905b1c425SDevin Teske#
10005b1c425SDevin Teske# Get user input
10105b1c425SDevin Teske#
10205b1c425SDevin TeskeHOSTNAME=$( dialog_hostname "$HOSTNAME" )
103*e4475153SAlfonso S. Siciliano[ $? -eq $DIALOG_CANCEL ] && exit 1
10405b1c425SDevin Teske
10505b1c425SDevin Teske#
10605b1c425SDevin Teske# Store the user's choice
10705b1c425SDevin Teske#
1086fd587f9SDevin Teskef_eval_catch "$pgm" echo "$ECHO_OVERWRITE" \
1096fd587f9SDevin Teske	'hostname=\"$HOSTNAME\"' "$HOSTNAMEFILE"
110cc478f6fSDevin Teskeretval=$?
11105b1c425SDevin Teske
11205b1c425SDevin Teske#
11305b1c425SDevin Teske# Activate entry if configured
11405b1c425SDevin Teske#
115cc478f6fSDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then
1166fd587f9SDevin Teske	f_eval_catch "$pgm" hostname "$SET_HOSTNAME" "$HOSTNAME"
117cc478f6fSDevin Teske	retval=$?
1182118f387SNathan Whitehornfi
11905b1c425SDevin Teske
120cc478f6fSDevin Teskeexit $retval
12105b1c425SDevin Teske
12205b1c425SDevin Teske################################################################################
12305b1c425SDevin Teske# END
12405b1c425SDevin Teske################################################################################
125