git: a6d202077dee - main - bsdinstall: revisit the finalconfig step
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 13 Oct 2023 16:20:11 UTC
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a6d202077deedcdadc589e10399119d52f7cf71a commit a6d202077deedcdadc589e10399119d52f7cf71a Author: Pierre Pronchery <pierre@freebsdfoundation.org> AuthorDate: 2023-10-02 18:28:07 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-10-13 16:19:39 +0000 bsdinstall: revisit the finalconfig step This moves the "finalconfig" step into a dedicated script, where it uses a loop instead of recursing into itself. Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42046 --- usr.sbin/bsdinstall/scripts/Makefile | 1 + usr.sbin/bsdinstall/scripts/auto | 54 +--------------------- usr.sbin/bsdinstall/scripts/finalconfig | 81 +++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 53 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/Makefile b/usr.sbin/bsdinstall/scripts/Makefile index 2d226f418783..e4ef00ecba59 100644 --- a/usr.sbin/bsdinstall/scripts/Makefile +++ b/usr.sbin/bsdinstall/scripts/Makefile @@ -7,6 +7,7 @@ SCRIPTS=auto \ docsinstall \ entropy \ fetchmissingdists \ + finalconfig \ hardening \ hostname \ jail \ diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto index 742f319e15ad..9f4b5b52fe5d 100755 --- a/usr.sbin/bsdinstall/scripts/auto +++ b/usr.sbin/bsdinstall/scripts/auto @@ -370,60 +370,8 @@ fi "Would you like to add users to the installed system now?" 0 0 && \ bsdinstall adduser -finalconfig() { - exec 5>&1 - REVISIT=$(bsddialog --backtitle "$OSNAME Installer" \ - --title "Final Configuration" --no-cancel --menu \ - "Setup of your $OSNAME system is nearly complete. You can now modify your configuration choices. After this screen, you will have an opportunity to make more complex changes using a shell." 0 0 0 \ - "Exit" "Apply configuration and exit installer" \ - "Add User" "Add a user to the system" \ - "Root Password" "Change root password" \ - "Hostname" "Set system hostname" \ - "Network" "Networking configuration" \ - "Services" "Set daemons to run on startup" \ - "System Hardening" "Set security options" \ - "Time Zone" "Set system timezone" \ - "Handbook" "Install $OSNAME Handbook (requires network)" 2>&1 1>&5) - exec 5>&- - - case "$REVISIT" in - "Add User") - bsdinstall adduser - finalconfig - ;; - "Root Password") - bsdinstall rootpass - finalconfig - ;; - "Hostname") - bsdinstall hostname - finalconfig - ;; - "Network") - bsdinstall netconfig - finalconfig - ;; - "Services") - bsdinstall services - finalconfig - ;; - "System Hardening") - bsdinstall hardening - finalconfig - ;; - "Time Zone") - bsdinstall time - finalconfig - ;; - "Handbook") - bsdinstall docsinstall - finalconfig - ;; - esac -} - # Allow user to change his mind -[ -z "$BSDINSTALL_SKIP_FINALCONFIG" ] && finalconfig +[ -z "$BSDINSTALL_SKIP_FINALCONFIG" ] && bsdinstall finalconfig trap error SIGINT # SIGINT is bad again bsdinstall config || error "Failed to save config" diff --git a/usr.sbin/bsdinstall/scripts/finalconfig b/usr.sbin/bsdinstall/scripts/finalconfig new file mode 100755 index 000000000000..a1c0d804754f --- /dev/null +++ b/usr.sbin/bsdinstall/scripts/finalconfig @@ -0,0 +1,81 @@ +#!/bin/sh +#- +# Copyright (c) 2011 Nathan Whitehorn +# Copyright (c) 2013-2018 Devin Teske +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ + +BSDCFG_SHARE="/usr/share/bsdconfig" +. $BSDCFG_SHARE/common.subr || exit 1 + +: ${BSDDIALOG_OK=0} + +while true; do + exec 5>&1 + REVISIT=$(bsddialog --backtitle "$OSNAME Installer" \ + --title "Final Configuration" --no-cancel --menu \ + "Setup of your $OSNAME system is nearly complete. You can now modify your configuration choices. After this screen, you will have an opportunity to make more complex changes using a shell." 0 0 0 \ + "Exit" "Apply configuration and exit installer" \ + "Add User" "Add a user to the system" \ + "Root Password" "Change root password" \ + "Hostname" "Set system hostname" \ + "Network" "Networking configuration" \ + "Services" "Set daemons to run on startup" \ + "System Hardening" "Set security options" \ + "Time Zone" "Set system timezone" \ + "Handbook" "Install $OSNAME Handbook (requires network)" 2>&1 1>&5) + retval=$? + exec 5>&- + + case "$REVISIT" in + "Add User") + bsdinstall adduser + ;; + "Root Password") + bsdinstall rootpass + ;; + "Hostname") + bsdinstall hostname + ;; + "Network") + bsdinstall netconfig + ;; + "Services") + bsdinstall services + ;; + "System Hardening") + bsdinstall hardening + ;; + "Time Zone") + bsdinstall time + ;; + "Handbook") + bsdinstall docsinstall + ;; + *) + break + ;; + esac +done