Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F115918771
D42281.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D42281.diff
View Options
diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto
--- a/usr.sbin/bsdinstall/scripts/auto
+++ b/usr.sbin/bsdinstall/scripts/auto
@@ -34,6 +34,14 @@
############################################################ GLOBALS
+#
+# List of environment variables that may be defined by the user, but modified
+# during the installation process. They are then restored when restarting this
+# script.
+#
+user_env_vars_prefix="ORIG_"
+user_env_vars="BSDINSTALL_DISTSITE DISTRIBUTIONS WORKAROUND_GPTACTIVE WORKAROUND_LENOVO ZFSBOOT_PARTITION_SCHEME"
+
#
# Strings that should be moved to an i18n file and loaded with f_include_lang()
#
@@ -90,6 +98,7 @@
--yes-label "$msg_restart" \
--yesno "$prompt" $height $width
then
+ environment_restore
exec $0
# NOTREACHED
fi
@@ -138,10 +147,35 @@
--yesno "$prompt" $height $width
}
+# environment_restore
+#
+# Restore a list of environment variables when this script is restarted.
+#
+environment_restore()
+{
+ for var in $user_env_vars; do
+ eval "if [ -n \"\${$user_env_vars_prefix$var}\" -o -z \"\${$user_env_vars_prefix$var-z}\" ]; then $var=\${$user_env_vars_prefix$var}; else unset $var; fi"
+ done
+}
+
+# environment_save
+#
+# Save any user-defined environment variable that may be modified during the
+# installation process. They are then restored when restarting this script.
+#
+environment_save()
+{
+ for var in $user_env_vars; do
+ eval "if [ -n \"\${$var}\" -o -z \"\${$var-z}\" ]; then $user_env_vars_prefix$var=\${$var}; else unset $user_env_vars_prefix$var; fi"
+ done
+}
+
############################################################ MAIN
f_dprintf "Began Installation at %s" "$( date )"
+environment_save
+
rm -rf $BSDINSTALL_TMPETC
mkdir $BSDINSTALL_TMPETC
diff --git a/usr.sbin/bsdinstall/scripts/jail b/usr.sbin/bsdinstall/scripts/jail
--- a/usr.sbin/bsdinstall/scripts/jail
+++ b/usr.sbin/bsdinstall/scripts/jail
@@ -31,12 +31,24 @@
BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
-############################################################ MAIN
+############################################################ GLOBALS
-: ${BSDDIALOG_OK=0}
+#
+# List of environment variables that may be defined by the user, but modified
+# during the installation process. They are then restored when restarting this
+# script.
+#
+user_env_vars_prefix="ORIG_"
+user_env_vars="BSDINSTALL_DISTSITE DISTRIBUTIONS"
-f_dprintf "Began Installation at %s" "$( date )"
+############################################################ FUNCTIONS
+# error [$msg]
+#
+# Display generic error message when a script fails. An optional message
+# argument can preceed the generic message. User is given the choice of
+# restarting the installer or exiting.
+#
error() {
local msg
if [ -n "$1" ]; then
@@ -48,16 +60,47 @@
if [ $? -ne $BSDDIALOG_OK ]; then
exit
else
- [ -z "$MIRROR_BUTTON" ] || unset BSDINSTALL_DISTSITE
+ environment_restore
exec $0 $BSDINSTALL_CHROOT
fi
}
+# environment_restore
+#
+# Restore a list of environment variables when this script is restarted.
+#
+environment_restore()
+{
+ for var in $user_env_vars; do
+ eval "if [ -n \"\${$user_env_vars_prefix$var}\" -o -z \"\${$user_env_vars_prefix$var-z}\" ]; then $var=\${$user_env_vars_prefix$var}; else unset $var; fi"
+ done
+}
+
+# environment_save
+#
+# Save any user-defined environment variable that may be modified during the
+# installation process. They are then restored when restarting this script.
+#
+environment_save()
+{
+ for var in $user_env_vars; do
+ eval "if [ -n \"\${$var}\" -o -z \"\${$var-z}\" ]; then $user_env_vars_prefix$var=\${$var}; else unset $user_env_vars_prefix$var; fi"
+ done
+}
+
+############################################################ MAIN
+
+: ${BSDDIALOG_OK=0}
+
+f_dprintf "Began Installation at %s" "$( date )"
+
if [ -z "$1" ]; then
error "Directory can not be empty\n\nUsage:\nbsdinstall jail directory"
fi
export BSDINSTALL_CHROOT=$1
+environment_save
+
rm -rf $BSDINSTALL_TMPETC
mkdir $BSDINSTALL_TMPETC
mkdir -p $1 || error "mkdir failed for $1"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 1, 10:02 AM (10 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17879144
Default Alt Text
D42281.diff (4 KB)
Attached To
Mode
D42281: bsdinstall: restore the environment when restarting
Attached
Detach File
Event Timeline
Log In to Comment