build/clean: allow ports, plugins and core clean; closes #36

This commit is contained in:
Franco Fichtner 2016-07-05 09:33:20 +02:00
parent 6c00be225f
commit 81d78b75fc
3 changed files with 28 additions and 2 deletions

View File

@ -222,10 +222,13 @@ Available clean options are:
* base: remove base set
* distfiles: remove distfiles set
* cdrom: remove cdrom image
* core: remove core from packages set
* images: remove all images
* kernel: remove kernel set
* nano: remove nano image
* packages: remove packages set
* plugins: remove plugins from packages set
* ports: alias for "packages" option
* release: remove release set
* serial: remove serial image
* sets: remove all sets

View File

@ -41,6 +41,15 @@ for ARG in ${@}; do
echo ">>> Removing cdrom image"
rm -f ${IMAGESDIR}/*-cdrom-${ARCH}.*
;;
core)
echo ">>> Removing core from packages set"
setup_stage ${STAGEDIR}
setup_base ${STAGEDIR}
extract_packages ${STAGEDIR}
remove_packages ${STAGEDIR} ${PRODUCT_TYPE} \
${PRODUCT_TYPE}-stable ${PRODUCT_TYPE}-devel
bundle_packages ${STAGEDIR} ${SELF} core
;;
distfiles)
echo ">>> Removing distfiles set"
rm -f ${SETSDIR}/distfiles-*.tar
@ -57,10 +66,18 @@ for ARG in ${@}; do
echo ">>> Removing nano image"
rm -f ${IMAGESDIR}/*-nano-${ARCH}.*
;;
packages)
packages|ports)
echo ">>> Removing packages set"
rm -f ${SETSDIR}/packages-*-${PRODUCT_FLAVOUR}-${ARCH}.tar
;;
plugins)
echo ">>> Removing plugins from packages set"
setup_stage ${STAGEDIR}
setup_base ${STAGEDIR}
extract_packages ${STAGEDIR}
remove_packages ${STAGEDIR} "os-*" "ospriv-*"
bundle_packages ${STAGEDIR} ${SELF} plugins
;;
release)
echo ">>> Removing release set"
rm -f ${SETSDIR}/release-*-${PRODUCT_FLAVOUR}-${ARCH}.tar

View File

@ -422,12 +422,18 @@ remove_packages()
for PKG in ${PKGLIST}; do
# clear out the ports that ought to be rebuilt
for PKGFILE in $(cd ${BASEDIR}${PACKAGESDIR}; find All -type f); do
for PKGFILE in $(cd ${BASEDIR}${PACKAGESDIR}; \
find All -type f); do
PKGINFO=$(pkg -c ${BASEDIR} info -F ${PACKAGESDIR}/${PKGFILE} | grep ^Name | awk '{ print $3; }')
if [ ${PKG} = ${PKGINFO} ]; then
rm ${BASEDIR}${PACKAGESDIR}/${PKGFILE}
fi
done
# if globbing matches, remove too
for PKGGLOB in $(cd ${BASEDIR}${PACKAGESDIR}; \
find All -name "${PKG}" -type f); do
rm ${BASEDIR}${PACKAGESDIR}/${PKGGLOB}
done
done
}