parseconfig.sh revision 225657
1#!/bin/sh 2#- 3# Copyright (c) 2010 iXsystems, Inc. All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 14# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24# SUCH DAMAGE. 25# 26# $FreeBSD: head/usr.sbin/pc-sysinstall/backend/parseconfig.sh 225657 2011-09-19 05:12:53Z jpaetzel $ 27 28# Main install configuration parsing script 29# 30 31# Source our functions scripts 32. ${BACKEND}/functions.sh 33. ${BACKEND}/functions-bsdlabel.sh 34. ${BACKEND}/functions-cleanup.sh 35. ${BACKEND}/functions-disk.sh 36. ${BACKEND}/functions-extractimage.sh 37. ${BACKEND}/functions-installcomponents.sh 38. ${BACKEND}/functions-installpackages.sh 39. ${BACKEND}/functions-localize.sh 40. ${BACKEND}/functions-mountdisk.sh 41. ${BACKEND}/functions-networking.sh 42. ${BACKEND}/functions-newfs.sh 43. ${BACKEND}/functions-packages.sh 44. ${BACKEND}/functions-parse.sh 45. ${BACKEND}/functions-runcommands.sh 46. ${BACKEND}/functions-ftp.sh 47. ${BACKEND}/functions-unmount.sh 48. ${BACKEND}/functions-upgrade.sh 49. ${BACKEND}/functions-users.sh 50 51# Check that the config file exists 52if [ ! -e "${1}" ] 53then 54 echo "ERROR: Install configuration $1 does not exist!" 55 exit 1 56fi 57 58# Set our config file variable 59CFGF="$1" 60 61# Resolve any relative pathing 62CFGF="`realpath ${CFGF}`" 63export CFGF 64 65# Start by doing a sanity check, which will catch any obvious mistakes in the config 66file_sanity_check "installMode installType installMedium packageType" 67 68# We passed the Sanity check, lets grab some of the universal config settings and store them 69check_value installMode "fresh upgrade extract" 70check_value installType "PCBSD FreeBSD" 71check_value installMedium "dvd usb ftp rsync image local" 72check_value packageType "uzip tar rsync split" 73if_check_value_exists partition "all s1 s2 s3 s4 free image" 74if_check_value_exists mirrorbal "load prefer round-robin split" 75 76# We passed all sanity checks! Yay, lets start the install 77echo "File Sanity Check -> OK" 78 79# Lets load the various universal settings now 80get_value_from_cfg installMode 81export INSTALLMODE="${VAL}" 82 83get_value_from_cfg installType 84export INSTALLTYPE="${VAL}" 85 86get_value_from_cfg installMedium 87export INSTALLMEDIUM="${VAL}" 88 89get_value_from_cfg packageType 90export PACKAGETYPE="${VAL}" 91 92# Check if we are doing any networking setup 93start_networking 94 95# If we are not doing an upgrade, lets go ahead and setup the disk 96case "${INSTALLMODE}" in 97 fresh) 98 if [ "${INSTALLMEDIUM}" = "image" ] 99 then 100 install_image 101 else 102 install_fresh 103 fi 104 ;; 105 106 extract) 107 # Extracting only, make sure we have a valid target directory 108 get_value_from_cfg installLocation 109 export FSMNT="${VAL}" 110 if [ -z "$FSMNT" ] ; then exit_err "Missing installLocation=" ; fi 111 if [ ! -d "$FSMNT" ] ; then exit_err "No such directory: $FSMNT" ; fi 112 113 install_extractonly 114 ;; 115 116 upgrade) 117 install_upgrade 118 ;; 119 120 *) 121 exit 1 122 ;; 123esac 124 125exit 0 126