script revision 256340
1#!/bin/sh
2#-
3# Copyright (c) 2013 Nathan Whitehorn
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26#
27# $FreeBSD: stable/10/usr.sbin/bsdinstall/scripts/script 256340 2013-10-11 20:28:30Z des $
28
29# VARIABLES:
30# PARTITIONS
31# DISTRIBUTIONS
32# BSDINSTALL_DISTDIR
33
34error() {
35	test -f $PATH_FSTAB && bsdinstall umount
36	echo "Installation Error!"
37	cat $BSDINSTALL_LOG
38	echo "Installation Error!"
39	exit 1
40}
41
42set -e
43trap error EXIT
44
45SCRIPT="$1"
46shift
47
48echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
49rm -rf $BSDINSTALL_TMPETC
50mkdir $BSDINSTALL_TMPETC
51
52split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsdinstall-installscript-
53
54. /tmp/bsdinstall-installscript-aa
55: ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS
56export BSDINSTALL_DISTDIR
57
58# Make partitions
59rm -f $PATH_FSTAB
60touch $PATH_FSTAB
61bsdinstall scriptedpart "$PARTITIONS"
62bsdinstall mount
63
64# Unpack distributions
65bsdinstall checksum
66bsdinstall distextract
67
68# Finalize install
69bsdinstall config
70
71# Make sure networking is functional, if we can arrange that
72if [ ! -f $BSDINSTALL_CHROOT/etc/resolv.conf -a -f /etc/resolv.conf ]; then
73	cp /etc/resolv.conf $BSDINSTALL_CHROOT/etc/resolv.conf
74fi
75
76# Run post-install script
77if [ -f /tmp/bsdinstall-installscript-ab ]; then
78	cp /tmp/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript
79	chmod a+x $BSDINSTALL_CHROOT/tmp/installscript
80	mount -t devfs devfs "$BSDINSTALL_CHROOT/dev"
81	chroot $BSDINSTALL_CHROOT /tmp/installscript $@ 2>&1
82	umount "$BSDINSTALL_CHROOT/dev"
83	rm $BSDINSTALL_CHROOT/tmp/installscript
84fi
85
86bsdinstall entropy
87bsdinstall umount
88
89echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
90
91trap true EXIT
92