aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/bsdinstall/scripts/jail
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-17 20:42:40 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-17 20:42:40 +0000
commite7c52918a29628cf1cfcb285af43d28c167a16e3 (patch)
tree78c0f5647d7fd57d490ba4690720b68412000c6d /usr.sbin/bsdinstall/scripts/jail
parentebd9ef339f967c8f1e8500b26fc46cd667bbb4d5 (diff)
downloadsrc-e7c52918a29628cf1cfcb285af43d28c167a16e3.tar.gz
src-e7c52918a29628cf1cfcb285af43d28c167a16e3.zip
Update to reflect net install changes.
Notes
Notes: svn path=/head/; revision=220753
Diffstat (limited to 'usr.sbin/bsdinstall/scripts/jail')
-rwxr-xr-xusr.sbin/bsdinstall/scripts/jail56
1 files changed, 44 insertions, 12 deletions
diff --git a/usr.sbin/bsdinstall/scripts/jail b/usr.sbin/bsdinstall/scripts/jail
index 0e6ba794383a..d596756dc66e 100755
--- a/usr.sbin/bsdinstall/scripts/jail
+++ b/usr.sbin/bsdinstall/scripts/jail
@@ -27,28 +27,51 @@
# $FreeBSD$
echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
-
export BSDINSTALL_CHROOT=$1
-export DISTRIBUTIONS="kernel.txz base.txz doc.txz games.txz"
-[ `uname -p` = amd64 -o `uname -p` = powerpc64 ] && export DISTRIBUTIONS="$DISTRIBUTIONS lib32.txz"
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
- test -f $PATH_FSTAB && bsdinstall umount
- exec $0
+ exec $0 $BSDINSTALL_CHROOT
fi
}
rm -rf $BSDINSTALL_TMPETC
mkdir $BSDINSTALL_TMPETC
+mkdir -p $1 || error
+
+test ! -d $BSDINSTALL_DISTDIR && mkdir -p $BSDINSTALL_DISTDIR
+
+if [ ! -f $BSDINSTALL_DISTDIR/MANIFEST -a -z "$BSDINSTALL_DISTSITE" ]; then
+ exec 3>&1
+ BSDINSTALL_DISTSITE=`bsdinstall mirrorselect 2>&1 1>&3`
+ MIRROR_BUTTON=$?
+ exec 3>&-
+ test $MIRROR_BUTTON -eq 0 || error
+ export BSDINSTALL_DISTSITE
+ fetch -o $BSDINSTALL_DISTDIR/MANIFEST $BSDINSTALL_DISTSITE/MANIFEST || error
+fi
-trap error SIGINT # SIGINT is bad
+export DISTRIBUTIONS="base.txz"
+if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then
+ DISTMENU=`cut -f 4,5,6 $BSDINSTALL_DISTDIR/MANIFEST | grep -v -e ^kernel -e ^base`
+
+ exec 3>&1
+ EXTRA_DISTS=$(echo $DISTMENU | xargs dialog \
+ --backtitle "FreeBSD Installer" \
+ --title "Distribution Select" --nocancel --separate-output \
+ --checklist "Choose optional system components to install:" \
+ 0 0 0 \
+ 2>&1 1>&3)
+ for dist in $EXTRA_DISTS; do
+ export DISTRIBUTIONS="$DISTRIBUTIONS $dist.txz"
+ done
+fi
FETCH_DISTRIBUTIONS=""
for dist in $DISTRIBUTIONS; do
@@ -56,19 +79,26 @@ for dist in $DISTRIBUTIONS; do
FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist"
fi
done
+FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS` # Trim white space
+
+if [ -n "$FETCH_DISTRIBUTIONS" -a -z "$BSDINSTALL_DISTSITE" ]; then
+ exec 3>&1
+ BSDINSTALL_DISTSITE=`bsdinstall mirrorselect 2>&1 1>&3`
+ MIRROR_BUTTON=$?
+ exec 3>&-
+ test $MIRROR_BUTTON -eq 0 || error
+ export BSDINSTALL_DISTSITE
+fi
-if [ ! -z $FETCH_DISTRIBUTIONS ]; then
- ALL_DISTRIBUTIONS=$DISTRIBUTIONS
- DISTRIBUTIONS=$FETCH_DISTRIBUTIONS
+if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
bsdinstall distfetch || error
- DISTRIBUTIONS=$ALL_DISTRIBUTIONS
fi
+bsdinstall checksum || error
bsdinstall distextract || error
bsdinstall rootpass || error
trap true SIGINT # This section is optional
-bsdinstall time
bsdinstall services
dialog --backtitle "FreeBSD Installer" --title "Add User Accounts" --yesno \
@@ -77,6 +107,8 @@ dialog --backtitle "FreeBSD Installer" --title "Add User Accounts" --yesno \
trap error SIGINT # SIGINT is bad again
bsdinstall config || error
+cp /etc/resolv.conf $1/etc
+cp /etc/localtime $1/etc
echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG