diff options
Diffstat (limited to 'usr.sbin/bsdinstall/scripts/script')
-rwxr-xr-x | usr.sbin/bsdinstall/scripts/script | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/usr.sbin/bsdinstall/scripts/script b/usr.sbin/bsdinstall/scripts/script new file mode 100755 index 0000000..eb44662 --- /dev/null +++ b/usr.sbin/bsdinstall/scripts/script @@ -0,0 +1,87 @@ +#!/bin/sh +#- +# Copyright (c) 2013 Nathan Whitehorn +# 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$ + +# VARIABLES: +# PARTITIONS +# DISTRIBUTIONS +# BSDINSTALL_DISTDIR + +error() { + test -f $PATH_FSTAB && bsdinstall umount + echo "Installation Error!" + cat $BSDINSTALL_LOG + echo "Installation Error!" + exit 1 +} + +set -e +trap error EXIT + +SCRIPT="$1" +shift + +echo "Begun Installation at $(date)" > $BSDINSTALL_LOG +rm -rf $BSDINSTALL_TMPETC +mkdir $BSDINSTALL_TMPETC + +split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsdinstall-installscript- +cd /tmp +echo BORK + +. bsdinstall-installscript-aa +: ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS +export BSDINSTALL_DISTDIR + +# Make partitions +rm -f $PATH_FSTAB +touch $PATH_FSTAB +bsdinstall scriptedpart "$PARTITIONS" +bsdinstall mount + +# Unpack distributions +bsdinstall checksum +bsdinstall distextract + +# Finalize install +bsdinstall config + +# Run post-install script +if [ -f /tmp/bsdinstall-installscript-ab ]; then + cp /tmp/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript + chmod a+x $BSDINSTALL_CHROOT/tmp/installscript + mount -t devfs devfs "$BSDINSTALL_CHROOT/dev" + chroot $BSDINSTALL_CHROOT /tmp/installscript $@ 2>&1 + umount "$BSDINSTALL_CHROOT/dev" + rm $BSDINSTALL_CHROOT/tmp/installscript +fi + +bsdinstall umount + +echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG + +trap true EXIT |