diff options
author | Lyndon Brown <jnqnfe@gmail.com> | 2020-04-28 19:41:45 +0100 |
---|---|---|
committer | Lyndon Brown <jnqnfe@gmail.com> | 2020-05-15 19:36:51 +0000 |
commit | fca128314754d937510312ce41ac39ae5d4d8125 (patch) | |
tree | 0d03be5e449266973a1337ac6598cc6c9c4b904d /scripts/build/clean | |
parent | 0afd3625ed3c2039e347830464eda8a378b2eb53 (diff) | |
download | vyos-live-build-fca128314754d937510312ce41ac39ae5d4d8125.tar.gz vyos-live-build-fca128314754d937510312ce41ac39ae5d4d8125.zip |
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
Diffstat (limited to 'scripts/build/clean')
-rwxr-xr-x | scripts/build/clean | 186 |
1 files 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 |