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
506368dcb2SAlfonso S. Siciliano: ${BSDDIALOG_CANCEL=1}
516368dcb2SAlfonso S. Siciliano
5205b1c425SDevin Teske#
5305b1c425SDevin Teske# Strings that should be moved to an i18n file and loaded with f_include_lang()
5405b1c425SDevin Teske#
55cc42ef53SBrad Davismsg_freebsd_installer="$OSNAME Installer"
56be99b538SDevin Teskemsg_ok="OK"
57be99b538SDevin 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."
58be99b538SDevin Teskemsg_set_hostname="Set Hostname"
5905b1c425SDevin Teske
606fd587f9SDevin Teske#
616fd587f9SDevin Teske# Command strings for various tasks
626fd587f9SDevin Teske#
636fd587f9SDevin TeskeECHO_OVERWRITE='echo "%s" > "%s"'
646fd587f9SDevin TeskeSET_HOSTNAME='hostname -s "%s"'
656fd587f9SDevin Teske
6605b1c425SDevin Teske############################################################ FUNCTIONS
6705b1c425SDevin Teske
6805b1c425SDevin Teske# dialog_hostname
6905b1c425SDevin Teske#
7005b1c425SDevin Teske# Display input box (without cancel button) for user to enter desired hostname.
7105b1c425SDevin Teske#
7205b1c425SDevin Teskedialog_hostname()
7305b1c425SDevin Teske{
7405b1c425SDevin Teske	local prompt="$msg_please_choose_a_hostname"
75*5f3ec44eSAlfonso S. Siciliano	local hline=
7605b1c425SDevin Teske	local value="$*"
7705b1c425SDevin Teske
786368dcb2SAlfonso S. Siciliano	bsddialog \
7905b1c425SDevin Teske		--title "$DIALOG_TITLE"         \
8005b1c425SDevin Teske		--backtitle "$DIALOG_BACKTITLE" \
8105b1c425SDevin Teske		--hline "$hline"                \
8205b1c425SDevin Teske		--ok-label "$msg_ok"            \
8305b1c425SDevin Teske		--no-cancel                     \
8405b1c425SDevin Teske		--inputbox "$prompt"            \
85*5f3ec44eSAlfonso S. Siciliano		0 0 "$value"                    \
8605b1c425SDevin Teske		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
8705b1c425SDevin Teske}
8805b1c425SDevin Teske
8905b1c425SDevin Teske############################################################ MAIN
9005b1c425SDevin Teske
9105b1c425SDevin Teske#
9205b1c425SDevin Teske# Initialize
9305b1c425SDevin Teske#
9405b1c425SDevin Teskef_dialog_title "$msg_set_hostname"
9505b1c425SDevin Teskef_dialog_backtitle "$msg_freebsd_installer"
9605b1c425SDevin Teske
9705b1c425SDevin Teske#
9805b1c425SDevin Teske# Get user input
9905b1c425SDevin Teske#
10005b1c425SDevin TeskeHOSTNAME=$( dialog_hostname "$HOSTNAME" )
1016368dcb2SAlfonso S. Siciliano[ $? -eq $BSDDIALOG_CANCEL ] && exit 1
10205b1c425SDevin Teske
10305b1c425SDevin Teske#
10405b1c425SDevin Teske# Store the user's choice
10505b1c425SDevin Teske#
1066fd587f9SDevin Teskef_eval_catch "$pgm" echo "$ECHO_OVERWRITE" \
1076fd587f9SDevin Teske	'hostname=\"$HOSTNAME\"' "$HOSTNAMEFILE"
108cc478f6fSDevin Teskeretval=$?
10905b1c425SDevin Teske
11005b1c425SDevin Teske#
11105b1c425SDevin Teske# Activate entry if configured
11205b1c425SDevin Teske#
113cc478f6fSDevin Teskeif [ "$BSDINSTALL_CONFIGCURRENT" ]; then
1146fd587f9SDevin Teske	f_eval_catch "$pgm" hostname "$SET_HOSTNAME" "$HOSTNAME"
115cc478f6fSDevin Teske	retval=$?
1162118f387SNathan Whitehornfi
11705b1c425SDevin Teske
118cc478f6fSDevin Teskeexit $retval
11905b1c425SDevin Teske
12005b1c425SDevin Teske################################################################################
12105b1c425SDevin Teske# END
12205b1c425SDevin Teske################################################################################
123