script revision 245707
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: head/usr.sbin/bsdinstall/scripts/script 245707 2013-01-21 02:47:14Z nwhitehorn $
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# Run post-install script
72if [ -f /tmp/bsdinstall-installscript-ab ]; then
73	cp /tmp/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript
74	chmod a+x $BSDINSTALL_CHROOT/tmp/installscript
75	mount -t devfs devfs "$BSDINSTALL_CHROOT/dev"
76	chroot $BSDINSTALL_CHROOT /tmp/installscript $@ 2>&1
77	umount "$BSDINSTALL_CHROOT/dev"
78	rm $BSDINSTALL_CHROOT/tmp/installscript
79fi
80
81bsdinstall umount
82
83echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
84
85trap true EXIT
86