svn commit: r217757 - user/nwhitehorn/bsdinstall/scripts

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Jan 23 18:23:20 UTC 2011


Author: nwhitehorn
Date: Sun Jan 23 18:23:19 2011
New Revision: 217757
URL: http://svn.freebsd.org/changeset/base/217757

Log:
  Make network installations work. Still no mirror selection. Next up
  (after that) will be wireless configuration, to be shared with
  pc-sysinstall.

Modified:
  user/nwhitehorn/bsdinstall/scripts/auto

Modified: user/nwhitehorn/bsdinstall/scripts/auto
==============================================================================
--- user/nwhitehorn/bsdinstall/scripts/auto	Sun Jan 23 17:20:11 2011	(r217756)
+++ user/nwhitehorn/bsdinstall/scripts/auto	Sun Jan 23 18:23:19 2011	(r217757)
@@ -5,7 +5,7 @@ echo "Begun Installation at $(date)" > $
 error() {
 	dialog --backtitle "FreeBSD Installer" --title "Abort" \
 	    --no-label "Exit" --yes-label "Restart" --yesno \
-	    "You have canceled an installation step. Would you like to restart the installation or exit the installer?" 0 0
+	    "An installation step has been aborted. Would you like to restart the installation or exit the installer?" 0 0
 	if [ $? -ne 0 ]; then
 		exit
 	else
@@ -31,7 +31,7 @@ for dist in $DISTRIBUTIONS; do
 	fi
 done
 
-if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
+if [ ! -z "$FETCH_DISTRIBUTIONS" -a ! -z $BSDINSTALL_CONFIGCURRENT ]; then
 	dialog --backtitle "FreeBSD Installer" --title "Network Installation" --msgbox "No installation files were found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0
 	bsdinstall netconfig || error
 	NETCONFIG_DONE=yes
@@ -63,11 +63,25 @@ case $? in
 	;;
 esac
 
-if [ ! -z $FETCH_DISTRIBUTIONS ]; then
-	ALL_DISTRIBUTIONS=$DISTRIBUTIONS
-	DISTRIBUTIONS=$FETCH_DISTRIBUTIONS
+if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
+	ALL_DISTRIBUTIONS="$DISTRIBUTIONS"
+
+	# Download to a directory in the new system as scratch space
+	BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/bsdinstall-dist"
+	mkdir -p "$BSDINSTALL_FETCHDEST" || error
+
+	export DISTRIBUTIONS="$FETCH_DISTRIBUTIONS"
+	# Try to use any existing distfiles
+	[ -d $BSDINSTALL_DISTDIR -a "$FETCH_DISTRIBUTIONS" != "$ALL_DISTRIBUTIONS" ] && mount_unionfs "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
+
+	# Otherwise, fetch everything
+	if [ $? -ne 0 ]; then
+		export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
+		export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
+	fi
+		
 	bsdinstall distfetch || error
-	DISTRIBUTIONS=$ALL_DISTRIBUTIONS
+	export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
 fi
 
 bsdinstall distextract || error
@@ -84,5 +98,11 @@ bsdinstall adduser
 trap error SIGINT	# SIGINT is bad again
 bsdinstall config  || error
 
+if [ ! -z "$BSDINSTALL_FETCHDEST" ]; then
+	[ "$BSDINSTALL_FETCHDEST" != "$BSDINSTALL_DISTDIR" ] && \
+	    umount "$BSDINSTALL_DISTDIR"
+	rm -rf "$BSDINSTALL_FETCHDEST"
+fi
+
 echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
 


More information about the svn-src-user mailing list