summaryrefslogtreecommitdiffstats
path: root/tools/builder_common.sh
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-08-28 11:53:03 -0300
committerRenato Botelho <renato@netgate.com>2015-08-28 11:53:03 -0300
commitfc48ef5427ef108a30dca4d42655fe040b0aa5c7 (patch)
tree0d801f6e05f3519cc158e5db548e70c6c2de9c93 /tools/builder_common.sh
parent8950897efdd87deb15f00b46bcbaef7e85cdefe8 (diff)
downloadpfsense-fc48ef5427ef108a30dca4d42655fe040b0aa5c7.zip
pfsense-fc48ef5427ef108a30dca4d42655fe040b0aa5c7.tar.gz
Add macros between %% and %% on pfSense.ovf, then simplify the logic of ova_setup_ovf_template()
Diffstat (limited to 'tools/builder_common.sh')
-rw-r--r--tools/builder_common.sh66
1 files changed, 30 insertions, 36 deletions
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
index 1f4fc4d..d4abd2f 100644
--- a/tools/builder_common.sh
+++ b/tools/builder_common.sh
@@ -851,53 +851,47 @@ create_ova_image() {
# called from create_ova_image
ova_setup_ovf_template() {
- if [ -f ${OVFTEMPLATE} ]; then
- cp ${OVFTEMPLATE} ${OVA_TMP}/${PRODUCT_NAME}.ovf
- else
+ if [ ! -f ${OVFTEMPLATE} ]; then
echo ">>> ERROR: OVF template file (${OVFTEMPLATE}) not found."
print_error_pfS
fi
- file_search_replace PRODUCT_VERSION $PRODUCT_VERSION ${OVA_TMP}/${PRODUCT_NAME}.ovf
- file_search_replace PRODUCT_URL $PRODUCT_URL ${OVA_TMP}/${PRODUCT_NAME}.ovf
+ # OperatingSystemSection (${PRODUCT_NAME}.ovf)
+ # 42 FreeBSD 32-Bit
+ # 78 FreeBSD 64-Bit
+ if [ "${TARGET}" = "amd64" ]; then
+ local _os_id="78"
+ local _os_type="FreeBSD 64-Bit"
+ elif [ "${TARGET}" = "i386" ]; then
+ local _os_id="42"
+ local _os_type="FreeBSD"
+ else
+ echo ">>> ERROR: Platform not supported for OVA (${TARGET})"
+ print_error_pfS
+ fi
- local BUILDPLATFORM=$(uname -p)
local POPULATEDSIZE=$(du -d0 -m $FINAL_CHROOT_DIR | cut -f1)
local POPULATEDSIZEBYTES=$((${POPULATEDSIZE}*1024^2))
local REFERENCESSIZE=$(stat -f "%z" ${OVA_TMP}/${OVFVMDK})
+
echo ">>> Setting REFERENCESSIZE to ${REFERENCESSIZE}..." | tee -a ${LOGFILE}
- file_search_replace REFERENCESSIZE ${REFERENCESSIZE} ${OVA_TMP}/${PRODUCT_NAME}.ovf
echo ">>> Setting POPULATEDSIZEBYTES to ${POPULATEDSIZEBYTES}..." | tee -a ${LOGFILE}
- # OperatingSystemSection (${PRODUCT_NAME}.ovf)
- # 42 FreeBSD 32-Bit
- # 78 FreeBSD 64-Bit
- if [ "$BUILDPLATFORM" = "i386" ]; then
- file_search_replace '"101"' '"42"' ${OVA_TMP}/${PRODUCT_NAME}.ovf
- file_search_replace 'FreeBSD XX-Bit' 'FreeBSD' ${OVA_TMP}/${PRODUCT_NAME}.ovf
- fi
- if [ "$BUILDPLATFORM" = "amd64" ]; then
- file_search_replace '"101"' '"78"' ${OVA_TMP}/${PRODUCT_NAME}.ovf
- file_search_replace 'FreeBSD XX-Bit' 'FreeBSD 64-Bit' ${OVA_TMP}/${PRODUCT_NAME}.ovf
- fi
- file_search_replace DISKSECTIONPOPULATEDSIZE $POPULATEDSIZEBYTES ${OVA_TMP}/${PRODUCT_NAME}.ovf
- # 10737254400 = 10240MB = virtual box vmdk file size XXX grab this value from vbox creation
- # 10737418240 = 10GB
- echo ">>> Setting DISKSECTIONALLOCATIONUNITS to 10737254400..." | tee -a ${LOGFILE}
- file_search_replace DISKSECTIONALLOCATIONUNITS $OVA_DISKSECTIONALLOCATIONUNITS ${OVA_TMP}/${PRODUCT_NAME}.ovf
- echo ">>> Setting DISKSECTIONCAPACITY to 10737418240..." | tee -a ${LOGFILE}
- file_search_replace DISKSECTIONCAPACITY $OVADISKSIZE ${OVA_TMP}/${PRODUCT_NAME}.ovf
-}
-
-# called from create_ova_image
-# This routine will replace a string in a file
-file_search_replace() {
- local SEARCH="$1"
- local REPLACE="$2"
- local FILENAME="$3"
+ echo ">>> Setting DISKSECTIONALLOCATIONUNITS to ${OVA_DISKSECTIONALLOCATIONUNITS}..." | tee -a ${LOGFILE}
+ echo ">>> Setting DISKSECTIONCAPACITY to ${OVADISKSIZE}..." | tee -a ${LOGFILE}
- if [ -f "${FILENAME}" ]; then
- sed -i '' -e "s/${SEARCH}/${REPLACE}/g" ${FILENAME}
- fi
+ sed \
+ -e "s,%%REFERENCESSIZE%%,${REFERENCESSIZE},g" \
+ -e "s,%%DISKSECTIONALLOCATIONUNITS%%,${OVA_DISKSECTIONALLOCATIONUNITS},g" \
+ -e "s,%%DISKSECTIONCAPACITY%%,${OVADISKSIZE},g" \
+ -e "s,%%DISKSECTIONPOPULATEDSIZE%%,${POPULATEDSIZEBYTES},g" \
+ -e "s,%%OS_ID%%,${_os_id},g" \
+ -e "s,%%OS_TYPE%%,${_os_type},g" \
+ -e "s,%%PRODUCT_NAME%%,${PRODUCT_NAME},g" \
+ -e "s,%%PRODUCT_VERSION%%,${PRODUCT_VERSION},g" \
+ -e "s,%%PRODUCT_URL%%,${PRODUCT_URL},g" \
+ -e "/^%%PRODUCT_LICENSE%%/r ${BUILDER_TOOR}/license.txt" \
+ -e "/^%%PRODUCT_LICENSE%%/d" \
+ ${OVFTEMPLATE} > ${OVA_TMP}/${PRODUCT_NAME}.ovf
}
# Cleans up previous builds
OpenPOWER on IntegriCloud