svn commit: r339755 - head/usr.sbin/bsdinstall/scripts

Devin Teske dteske at FreeBSD.org
Fri Oct 26 00:08:28 UTC 2018


Author: dteske
Date: Fri Oct 26 00:08:27 2018
New Revision: 339755
URL: https://svnweb.freebsd.org/changeset/base/339755

Log:
  Fix dialog autosizing in bsdinstall hostname
  
  Sponsored by:	Smule, Inc.

Modified:
  head/usr.sbin/bsdinstall/scripts/hostname

Modified: head/usr.sbin/bsdinstall/scripts/hostname
==============================================================================
--- head/usr.sbin/bsdinstall/scripts/hostname	Fri Oct 26 00:05:46 2018	(r339754)
+++ head/usr.sbin/bsdinstall/scripts/hostname	Fri Oct 26 00:08:27 2018	(r339755)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #-
 # Copyright (c) 2011 Nathan Whitehorn
-# Copyright (c) 2015 Devin Teske
+# Copyright (c) 2015-2018 Devin Teske
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -26,27 +26,93 @@
 # SUCH DAMAGE.
 #
 # $FreeBSD$
+#
+############################################################ INCLUDES
 
-: ${DIALOG_OK=0}
-: ${DIALOG_CANCEL=1}
-: ${DIALOG_HELP=2}
-: ${DIALOG_EXTRA=3}
-: ${DIALOG_ITEM_HELP=4}
-: ${DIALOG_ESC=255}
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading_includes..." "$0"
+f_include $BSDCFG_SHARE/dialog.subr
 
-exec 3>&1
-HOSTNAME=`dialog --backtitle 'FreeBSD Installer' --title 'Set Hostname' --nocancel --inputbox \
-	'Please choose a hostname for this machine.
+############################################################ CONFIGURATION
 
-If you are running on a managed network, please ask your network administrator for an appropriate name.' \
-	0 0 $(hostname) 2>&1 1>&3`
-if [ $? -eq $DIALOG_CANCEL ]; then exit 1; fi
-exec 3>&-
+#
+# Default value
+#
+: ${HOSTNAME=$( hostname )}
 
-echo "hostname=\"$HOSTNAME\"" > $BSDINSTALL_TMPETC/rc.conf.hostname
+#
+# Default file to store hostname entry in
+#
+: ${HOSTNAMEFILE:=$BSDINSTALL_TMPETC/rc.conf.hostname}
+
+############################################################ GLOBALS
+
+#
+# Strings that should be moved to an i18n file and loaded with f_include_lang()
+#
+msg_set_hostname="Set Hostname"
+msg_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."
+msg_ok="OK"
+msg_freebsd_installer="FreeBSD Installer"
+
+############################################################ FUNCTIONS
+
+# dialog_hostname
+#
+# Display input box (without cancel button) for user to enter desired hostname.
+#
+dialog_hostname()
+{
+	local prompt="$msg_please_choose_a_hostname"
+	local hline=
+	local value="$*"
+
+	local height width
+	f_dialog_inputbox_size height width \
+		"$DIALOG_TITLE" "$DIALOG_BACKTITLE" "$prompt" "$value" "$hline"
+
+	$DIALOG \
+		--title "$DIALOG_TITLE" \
+		--backtitle "$DIALOG_BACKTITLE" \
+		--hline "$hline" \
+		--ok-label "$msg_ok" \
+		--no-cancel \
+		--inputbox "$prompt" \
+		$height $width "$value" \
+		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+}
+
+############################################################ MAIN
+
+#
+# Initialize
+#
+f_dialog_title "$msg_set_hostname"
+f_dialog_backtitle "$msg_freebsd_installer"
+
+#
+# Get user input
+#
+HOSTNAME=$( dialog_hostname "$HOSTNAME" )
+[ $? -eq $DIALOG_CANCEL ] && exit 1
+
+#
+# Store the user's choice
+#
+echo "hostname=\"$HOSTNAME\"" > "$HOSTNAMEFILE"
 retval=$?
+
+#
+# Activate entry if configured
+#
 if [ "$BSDINSTALL_CONFIGCURRENT" ]; then
 	hostname -s "$HOSTNAME"
 	retval=$?
 fi
+
 exit $retval
+
+################################################################################
+# END
+################################################################################


More information about the svn-src-head mailing list