diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-01-21 01:01:32 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-01-21 01:01:32 +0000 |
commit | 07280965871a156bcd84fc45e499722cc31f4161 (patch) | |
tree | 82e728baf4bc19c0454afdd7931e530ed6b0c599 /usr.sbin | |
parent | d8e6882b0a70197936f2f0ec7106c4e967bb9369 (diff) | |
download | FreeBSD-src-07280965871a156bcd84fc45e499722cc31f4161.zip FreeBSD-src-07280965871a156bcd84fc45e499722cc31f4161.tar.gz |
Add a scripting frontend. Documentation and release(7) support coming later.
Scripts take the form:
------------------------------------
PARTITIONS=ada0
DISTRIBUTIONS="kernel.txz base.txz ports.txz"
#!/bin/sh
echo "sshd_enable=YES" >> /etc/rc.conf
pkg add puppet
echo "System setup complete"
------------------------------------
The second part of the script (beginning with #!) is run in the newly
installed system after the installation onto ada0 (with default partitioning,
see scriptedpart for more complicated scenarios) is complete.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/bsdinstall/scripts/Makefile | 2 | ||||
-rwxr-xr-x | usr.sbin/bsdinstall/scripts/script | 87 |
2 files changed, 88 insertions, 1 deletions
diff --git a/usr.sbin/bsdinstall/scripts/Makefile b/usr.sbin/bsdinstall/scripts/Makefile index 5e450b7..bcfafc0 100644 --- a/usr.sbin/bsdinstall/scripts/Makefile +++ b/usr.sbin/bsdinstall/scripts/Makefile @@ -2,7 +2,7 @@ SCRIPTS= auto adduser checksum config docsinstall hostname jail keymap \ mirrorselect mount netconfig netconfig_ipv4 netconfig_ipv6 rootpass \ - services time umount wlanconfig + script services time umount wlanconfig BINDIR= /usr/libexec/bsdinstall NO_MAN= true 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 |