build: remember image progress

This commit is contained in:
Franco Fichtner 2016-05-21 11:54:42 +02:00
parent afcc94c124
commit 7576ae0816
6 changed files with 39 additions and 25 deletions

View File

@ -31,12 +31,7 @@ SELF=cdrom
. ./common.sh && $(${SCRUB_ARGS})
CDROM=$(find ${IMAGESDIR} -name "*-cdrom-${ARCH}.*")
if [ -f "${CDROM}" -a -z "${1}" ]; then
echo ">>> Reusing cdrom image: ${CDROM}"
exit 0
fi
check_images ${SELF} ${@}
CDROM="${IMAGESDIR}/${PRODUCT_RELEASE}-cdrom-${ARCH}.iso"
@ -53,7 +48,7 @@ setup_extras ${STAGEDIR} ${SELF}
setup_mtree ${STAGEDIR}
setup_entropy ${STAGEDIR}
echo -n ">>> Building ISO image... "
echo -n ">>> Building cdrom image... "
# must be upper case:
LABEL=$(echo ${LABEL} | tr '[:lower:]' '[:upper:]')
@ -67,6 +62,4 @@ EOF
makefs -t cd9660 -o bootimage="i386;${STAGEDIR}/boot/cdboot" \
-o no-emul-boot -o label=${LABEL} -o rockridge ${CDROM} ${STAGEDIR}
echo "done:"
ls -lah ${IMAGESDIR}/*
echo "done"

View File

@ -294,7 +294,7 @@ setup_chroot()
setup_marker()
{
# Let opnsense-update(8) know it's up to date
local MARKER="/usr/local/opnsense/version/opnsense-update.${3}"
MARKER="/usr/local/opnsense/version/opnsense-update.${3}"
if [ ! -f ${1}${MARKER} ]; then
# first call means bootstrap the marker file
@ -380,19 +380,33 @@ generate_signature()
fi
}
check_packages()
check_images()
{
PACKAGESET=$(find ${SETSDIR} -name "packages-*-${PRODUCT_FLAVOUR}-${ARCH}.tar")
MARKER=${1}
SELF=${1}
SKIP=${2}
if [ -z "${MARKER}" -o -z "${PACKAGESET}" -o -n "${SKIP}" ]; then
IMAGE=$(find ${IMAGESDIR} -name "*-${SELF}-${ARCH}.*")
if [ -f "${IMAGE}" -a -z "${SKIP}" ]; then
echo ">>> Reusing ${SELF} image: ${IMAGE}"
exit 0
fi
}
check_packages()
{
SELF=${1}
SKIP=${2}
PACKAGESET=$(find ${SETSDIR} -name "packages-*-${PRODUCT_FLAVOUR}-${ARCH}.tar")
if [ -z "${SELF}" -o -z "${PACKAGESET}" -o -n "${SKIP}" ]; then
return
fi
DONE=$(tar tf ${PACKAGESET} | grep "^\./\.${MARKER}_done\$" || true)
DONE=$(tar tf ${PACKAGESET} | grep "^\./\.${SELF}_done\$" || true)
if [ -n "${DONE}" ]; then
echo ">>> Packages (${MARKER}) are up to date"
echo ">>> Packages (${SELF}) are up to date"
exit 0
fi
}
@ -512,7 +526,7 @@ EOF
bundle_packages()
{
BASEDIR=${1}
MARKER=${2}
SELF=${2}
sh ./clean.sh packages
@ -529,9 +543,9 @@ bundle_packages()
cp ${PROGRESS} ${BASEDIR}${PACKAGESDIR}-new
done
if [ -n "${MARKER}" ]; then
if [ -n "${SELF}" ]; then
# add build marker to set
touch ${BASEDIR}${PACKAGESDIR}-new/.${MARKER}_done
touch ${BASEDIR}${PACKAGESDIR}-new/.${SELF}_done
fi
# push packages to home location

View File

@ -33,6 +33,8 @@ SELF=nano
. ./common.sh && $(${SCRUB_ARGS})
check_images ${SELF} ${@}
NANOIMG="${IMAGESDIR}/${PRODUCT_RELEASE}-nano-${ARCH}.img"
sh ./clean.sh ${SELF}
@ -153,9 +155,4 @@ fi
# move image from RAM to output file
dd if=/dev/${MD} of=${NANOIMG} bs=64k
mdconfig -d -u ${MD}
echo "done:"
ls -lah ${IMAGESDIR}/*

View File

@ -32,6 +32,8 @@ SELF=serial
. ./common.sh && $(${SCRUB_ARGS})
check_images ${SELF} ${@}
SERIALIMG="${IMAGESDIR}/${PRODUCT_RELEASE}-serial-${ARCH}.img"
# rewrite the disk label, because we're install media

View File

@ -31,6 +31,8 @@ SELF=vga
. ./common.sh && $(${SCRUB_ARGS})
check_images ${SELF} ${@}
VGAIMG="${IMAGESDIR}/${PRODUCT_RELEASE}-vga-${ARCH}.img"
# rewrite the disk label, because we're install media

View File

@ -31,6 +31,8 @@ SELF=vm
. ./common.sh && $(${SCRUB_ARGS})
check_images ${SELF} ${@}
VMFORMAT="vmdk"
VMSIZE="20G"
VMSWAP="1G"
@ -90,6 +92,10 @@ fi
umount ${STAGEDIR}/mnt
mdconfig -d -u ${MD}
echo -n ">>> Building vm image... "
mkimg -s gpt -f ${VMFORMAT} -o ${VMIMG} -b ${STAGEDIR}/boot/pmbr \
-p freebsd-boot/bootfs:=${STAGEDIR}/boot/gptboot \
-p freebsd-ufs/rootfs:=${VMBASE} ${SWAPARGS}
echo "done"