From fca128314754d937510312ce41ac39ae5d4d8125 Mon Sep 17 00:00:00 2001 From: Lyndon Brown Date: Tue, 28 Apr 2020 19:41:45 +0100 Subject: clean: refactor this simplifies things to avoid the messy recursion. it is also a necessary step to implementing handling of common options like --debug. we need to process all options to decide how to approach doing things (e.g. with debug messages to be output or not) before actually performing any work, in order for options like --debug to be reacted to properly. also, as things were, options like `--debug` were not being passed along in the recursive executions, while now that is no longer an issue. the order of file/folder deletions for `--all`|`--purge`|`--remove` actions is slightly changed here, but i don't see any issue with that and it's cleaner to not preserve that. Gbp-Dch: Short --- scripts/build/clean | 186 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 108 insertions(+), 78 deletions(-) diff --git a/scripts/build/clean b/scripts/build/clean index 178883260..8851305b0 100755 --- a/scripts/build/clean +++ b/scripts/build/clean @@ -43,108 +43,38 @@ if [ $# -eq 0 ]; then set -- "--all" fi -STAGEFILES_DIR="$(Stagefiles_dir)" - for ARGUMENT in "${@}"; do case "${ARGUMENT}" in --all) - Echo_debug "Running --all" - "${0}" noauto --chroot - "${0}" noauto --binary - "${0}" noauto --stage - "${0}" noauto --source - - rmdir --ignore-fail-on-non-empty auto > /dev/null 2>&1 || true - rmdir --ignore-fail-on-non-empty local/bin > /dev/null 2>&1 || true - rmdir --ignore-fail-on-non-empty local > /dev/null 2>&1 || true + RM_ALL="true" ;; --cache) - Echo_debug "Cleaning cache" - rm -rf cache + RM_CACHE="true" ;; --chroot) - # This one is not debug because it can potentially take some time - Echo_message "Cleaning chroot" - umount -f chroot/run > /dev/null 2>&1 || true - umount -f chroot/sys > /dev/null 2>&1 || true - umount -f chroot/proc/sys/fs/binfmt_misc > /dev/null 2>&1 || true - umount -f chroot/proc > /dev/null 2>&1 || true - umount -f chroot/lib/init/rw > /dev/null 2>&1 || true - umount -f chroot/dev/shm > /dev/null 2>&1 || true - umount -f chroot/dev/pts > /dev/null 2>&1 || true - umount -f chroot/dev > /dev/null 2>&1 || true - umount -f chroot/var/lib/dpkg > /dev/null 2>&1 || true - umount -f chroot/root/config > /dev/null 2>&1 || true - - umount -f chroot/binary.tmp > /dev/null 2>&1 || true - umount -f chroot/dev.tmp/pts > /dev/null 2>&1 || true - - rm -rf chroot chroot.tmp - - rm -f chroot.packages.live chroot.packages.install - rm -f chroot.files - - rm -f "$(Installed_tmp_packages_file)" - - rm -f "${STAGEFILES_DIR}"/chroot* + RM_CHROOT="true" ;; --binary) - Echo_debug "Cleaning binary" - umount -f binary.tmp > /dev/null 2>&1 || true - rm -rf binary.tmp binary.deb binary.udeb - rm -f ${LB_IMAGE_NAME}*.iso - rm -f ${LB_IMAGE_NAME}*.img - rm -f ${LB_IMAGE_NAME}*.tar.gz - rm -f ${LB_IMAGE_NAME}*.zsync* - rm -f ${LB_IMAGE_NAME}.sh - rm -f ${LB_IMAGE_NAME}*.contents ${LB_IMAGE_NAME}*.packages ${LB_IMAGE_NAME}*.files - rm -f ${LB_IMAGE_NAME}*.iso-ONIE.bin - rm -f MD5SUMS SHA1SUMS SHA256SUMS SHA512SUMS - rm -f md5sum.txt sha1sum.txt sha256sum.txt sha512sum.txt - - rm -rf binary - rm -rf tftpboot - - rm -f "${STAGEFILES_DIR}"/binary* + RM_BINARY="true" ;; --remove) - Echo_debug "Running --remove" - "${0}" noauto --all - rm -rf cache/packages.* + RM_REMOVE="true" ;; --purge) - Echo_debug "Running --purge" - "${0}" noauto --all - "${0}" noauto --cache - - if [ -e auto/config ] - then - Remove_stagefile config - fi + RM_PURGE="true" ;; --stage) - Echo_debug "Cleaning stage files" - rm -rf "${STAGEFILES_DIR}"/* + RM_STAGE="true" ;; --source) - Echo_debug "Cleaning source" - rm -f ${LB_IMAGE_NAME}-source*.iso - rm -f ${LB_IMAGE_NAME}-source*.img - rm -f ${LB_IMAGE_NAME}-source*.tar - rm -f ${LB_IMAGE_NAME}-source*.tar.gz - rm -f ${LB_IMAGE_NAME}-source*.list - rm -f ${LB_IMAGE_NAME}-source-selection.txt - - rm -rf source - - rm -f "${STAGEFILES_DIR}"/source* + RM_SOURCE="true" ;; -h|--help) @@ -166,3 +96,103 @@ for ARGUMENT in "${@}"; do ;; esac done + +STAGEFILES_DIR="$(Stagefiles_dir)" + +if [ "${RM_PURGE}" = "true" ]; then + Echo_debug "Initialising --purge cleaning" + RM_ALL="true" + RM_CACHE="true" + # Clear config stagefile + if [ -e auto/config ]; then + Remove_stagefile config + fi +fi + +if [ "${RM_REMOVE}" = "true" ]; then + Echo_debug "Initialising --remove cleaning" + RM_ALL="true" + rm -rf cache/packages.* +fi + +if [ "${RM_ALL}" = "true" ]; then + Echo_debug "Initialising --all cleaning" + RM_STAGE="true" + RM_CHROOT="true" + RM_BINARY="true" + RM_SOURCE="true" + rmdir --ignore-fail-on-non-empty auto > /dev/null 2>&1 || true + rmdir --ignore-fail-on-non-empty local/bin > /dev/null 2>&1 || true + rmdir --ignore-fail-on-non-empty local > /dev/null 2>&1 || true +fi + +if [ "${RM_STAGE}" = "true" ]; then + Echo_debug "Cleaning stage files" + rm -rf "${STAGEFILES_DIR}"/* +fi + +if [ "${RM_CACHE}" = "true" ]; then + Echo_debug "Cleaning cache" + rm -rf cache +fi + +if [ "${RM_CHROOT}" = "true" ]; then + # This one is not debug because it can potentially take some time + Echo_message "Cleaning chroot" + umount -f chroot/run > /dev/null 2>&1 || true + umount -f chroot/sys > /dev/null 2>&1 || true + umount -f chroot/proc/sys/fs/binfmt_misc > /dev/null 2>&1 || true + umount -f chroot/proc > /dev/null 2>&1 || true + umount -f chroot/lib/init/rw > /dev/null 2>&1 || true + umount -f chroot/dev/shm > /dev/null 2>&1 || true + umount -f chroot/dev/pts > /dev/null 2>&1 || true + umount -f chroot/dev > /dev/null 2>&1 || true + umount -f chroot/var/lib/dpkg > /dev/null 2>&1 || true + umount -f chroot/root/config > /dev/null 2>&1 || true + + umount -f chroot/binary.tmp > /dev/null 2>&1 || true + umount -f chroot/dev.tmp/pts > /dev/null 2>&1 || true + + rm -rf chroot chroot.tmp + + rm -f chroot.packages.live chroot.packages.install + rm -f chroot.files + + rm -f "$(Installed_tmp_packages_file)" + + rm -f "${STAGEFILES_DIR}"/chroot* +fi + +if [ "${RM_BINARY}" = "true" ]; then + Echo_debug "Cleaning binary" + umount -f binary.tmp > /dev/null 2>&1 || true + rm -rf binary.tmp binary.deb binary.udeb + rm -f ${LB_IMAGE_NAME}*.iso + rm -f ${LB_IMAGE_NAME}*.img + rm -f ${LB_IMAGE_NAME}*.tar.gz + rm -f ${LB_IMAGE_NAME}*.zsync* + rm -f ${LB_IMAGE_NAME}.sh + rm -f ${LB_IMAGE_NAME}*.contents ${LB_IMAGE_NAME}*.packages ${LB_IMAGE_NAME}*.files + rm -f ${LB_IMAGE_NAME}*.iso-ONIE.bin + rm -f MD5SUMS SHA1SUMS SHA256SUMS SHA512SUMS + rm -f md5sum.txt sha1sum.txt sha256sum.txt sha512sum.txt + + rm -rf binary + rm -rf tftpboot + + rm -f "${STAGEFILES_DIR}"/binary* +fi + +if [ "${RM_SOURCE}" = "true" ]; then + Echo_debug "Cleaning source" + rm -f ${LB_IMAGE_NAME}-source*.iso + rm -f ${LB_IMAGE_NAME}-source*.img + rm -f ${LB_IMAGE_NAME}-source*.tar + rm -f ${LB_IMAGE_NAME}-source*.tar.gz + rm -f ${LB_IMAGE_NAME}-source*.list + rm -f ${LB_IMAGE_NAME}-source-selection.txt + + rm -rf source + + rm -f "${STAGEFILES_DIR}"/source* +fi -- cgit v1.2.3