#!/bin/bash DEST_SYS=/usr/ports/releases/stable DEST_ARC=/usr/ports/releases/archives #PRT_GET_FLAGS="-fr -if -is" PRT_GET_FLAGS="-fr" # Build Name = R1 (System number) D1 (Droid/Machine number) BUILD_NAME="R1D9" #echo "Give build NAME;" #echo "${DEST_ARC}/NAME-0.0.0.targ.gz" #read BUILD_NAME echo "Give build CRUX_RELEASE.VERSION (3.4.X);" echo "${DEST_ARC}/${BUILD_NAME}-VERSION.tar.gz" read BUILD_VERSION mkdir -p ${DEST_SYS} mkdir -p ${DEST_ARC} backup_collections() { # backup collection packages while read COLL_VERSION; do COLL_NAME=$(echo $COLL_VERSION | cut -d "-" -f 1) COLL_RELEASE=$(echo $COLL_VERSION | cut -d "-" -f 2) while read PORT_NAME; do # get installed version not version on ports PACKAGE=$(grep "^${PORT_NAME}#" ${DEST_SYS}/all-installed.pkg) echo "Backing up package: ${PACKAGE}" # check if binary package exist if [ ! -f /usr/ports/packages/${PACKAGE} ]; then echo "Building package: ${PACKAGE};" sudo prt-get update ${PRT_GET_FLAGS} ${PORT_NAME} fi if [ -f /usr/ports/packages/${PACKAGE} ]; then echo ${PACKAGE} >> ${DEST_SYS}/${COLL_NAME}-backup.pkg tar rvf ${DEST_SYS}/${COLL_NAME}-${COLL_RELEASE}.tar --directory=/usr/ports/packages ${PACKAGE} else echo "Package ${PACKAGE} from ${PORT_NAME} port not found." echo ${PACKAGE} >> ${DEST_SYS}/${COLL_NAME}-${COLL_RELEASE}-notfound.pkg fi done < ${DEST_SYS}/${COLL_NAME}-installed.pkg done < ${DEST_SYS}/ports_versions.pkg } create_metadata() { echo "${BUILD_NAME}-${BUILD_VERSION}" >> ${DEST_SYS}/build_version # archive pkgutils data tar --xattrs -zcpf ${DEST_SYS}/pkg-db.tar.gz /var/lib/pkg/db . # archive ports data tar --xattrs -zcpf ${DEST_SYS}/etc_ports.tar.gz --directory=/etc/ports . # must be using gwak instead of sed prt-get listinst -v | sed 's/ /#/g' | sed 's/$/.pkg.tar.gz/g' > ${DEST_SYS}/all-installed.pkg if [ -f ${DEST_SYS}/ports_versions ]; then rm ${DEST_SYS}/ports_versions.pkg fi for filename in /etc/ports/*.git; do source $filename echo "${NAME} port collection release (exp; ${BUILD_VERSION}):" read RELEASE echo ${NAME}-${RELEASE} >> ${DEST_SYS}/ports_versions.pkg # backup ports collection echo "Backing up collection: ${NAME}" tar --xattrs -zcpf ${DEST_SYS}/${NAME}-ports-${RELEASE}.tar.gz \ --directory=/usr/ports/${NAME} \ --exclude=.git/ \ . # create list of installed packages prt-get printf "%i %p %n\n" | grep "yes /usr/ports/${NAME}" | cut -d " " -f 3 > ${DEST_SYS}/${NAME}-installed.pkg done } create_archive() { echo "Creating ${DEST_ARC}/${BUILD_NAME}-${BUILD_VERSION}.tar.gz ..." tar --xattrs -zcpf ${DEST_ARC}/${BUILD_NAME}-${BUILD_VERSION}.tar.gz --directory=${DEST_SYS} . } update_host() { echo "Creating links to /usr/ports/installed" rm -r /usr/ports/installed pkg_installed echo "Creating ports page" portspage --title=${BUILD_NAME}-${BUILD_VERSION} /usr/ports/installed > /usr/ports/installed/index.html } create_metadata backup_collections create_archive update_host