#!/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- . /tmp/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 # Make sure networking is functional, if we can arrange that if [ ! -f $BSDINSTALL_CHROOT/etc/resolv.conf -a -f /etc/resolv.conf ]; then cp /etc/resolv.conf $BSDINSTALL_CHROOT/etc/resolv.conf fi # 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