diff options
author | Renato Botelho <renato@netgate.com> | 2015-08-28 11:53:03 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-08-28 11:53:03 -0300 |
commit | fc48ef5427ef108a30dca4d42655fe040b0aa5c7 (patch) | |
tree | 0d801f6e05f3519cc158e5db548e70c6c2de9c93 /tools/builder_common.sh | |
parent | 8950897efdd87deb15f00b46bcbaef7e85cdefe8 (diff) | |
download | pfsense-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.sh | 66 |
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 |