summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLyndon Brown <jnqnfe@gmail.com>2020-04-28 19:41:45 +0100
committerLyndon Brown <jnqnfe@gmail.com>2020-05-15 19:36:51 +0000
commitfca128314754d937510312ce41ac39ae5d4d8125 (patch)
tree0d03be5e449266973a1337ac6598cc6c9c4b904d
parent0afd3625ed3c2039e347830464eda8a378b2eb53 (diff)
downloadvyos-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
-rwxr-xr-xscripts/build/clean186
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