summaryrefslogtreecommitdiff
path: root/scripts/build/clean
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 /scripts/build/clean
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
Diffstat (limited to 'scripts/build/clean')
-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