]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - usr.sbin/bsdinstall/scripts/script
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / usr.sbin / bsdinstall / scripts / script
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$
28
29 # VARIABLES:
30 # PARTITIONS
31 # DISTRIBUTIONS
32 # BSDINSTALL_DISTDIR
33
34 error() {
35         test -f $PATH_FSTAB && bsdinstall umount
36         echo "Installation Error!"
37         cat $BSDINSTALL_LOG
38         echo "Installation Error!"
39         exit 1
40 }
41
42 set -e
43 trap error EXIT
44
45 SCRIPT="$1"
46 shift
47
48 echo "Begun Installation at $(date)" > $BSDINSTALL_LOG
49 rm -rf $BSDINSTALL_TMPETC
50 mkdir $BSDINSTALL_TMPETC
51
52 split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsdinstall-installscript-
53
54 . /tmp/bsdinstall-installscript-aa
55 : ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS
56 export BSDINSTALL_DISTDIR
57
58 # Make partitions
59 rm -f $PATH_FSTAB
60 touch $PATH_FSTAB
61 bsdinstall scriptedpart "$PARTITIONS"
62 bsdinstall mount
63
64 # Unpack distributions
65 bsdinstall checksum
66 bsdinstall distextract
67
68 # Finalize install
69 bsdinstall config
70
71 # Make sure networking is functional, if we can arrange that
72 if [ ! -f $BSDINSTALL_CHROOT/etc/resolv.conf -a -f /etc/resolv.conf ]; then
73         cp /etc/resolv.conf $BSDINSTALL_CHROOT/etc/resolv.conf
74 fi
75
76 # Run post-install script
77 if [ -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
84 fi
85
86 bsdinstall umount
87
88 echo "Installation Completed at $(date)" >> $BSDINSTALL_LOG
89
90 trap true EXIT