diff options
author | Bryan Drewery <bryan@shatow.net> | 2021-09-03 21:21:31 +0300 |
---|---|---|
committer | Bryan Drewery <bryan@shatow.net> | 2021-09-03 23:38:15 +0300 |
commit | b999f9fd3a3c59a1451bb2eaed317cabf7569703 (patch) | |
tree | 6f2b145ba29d0162ad52f95321d75b64d8cd11e9 /src | |
parent | 4c31d8413b2d0e0752181b6b677e1e208d22a72b (diff) |
Rework c25726ffc: deletions are not all mutually exclusion.
Fixes c25726ffc8 ("bulk missing pkg: Delete packages before fetching from remote")
Diffstat (limited to 'src')
-rw-r--r-- | src/share/poudriere/common.sh | 20 | ||||
-rw-r--r-- | src/share/poudriere/include/pkg.sh | 9 |
2 files changed, 18 insertions, 11 deletions
diff --git a/src/share/poudriere/common.sh b/src/share/poudriere/common.sh index d3647bd1..5771d805 100644 --- a/src/share/poudriere/common.sh +++ b/src/share/poudriere/common.sh @@ -7510,7 +7510,7 @@ trim_ignored_pkg() { prepare_ports() { local pkg local log log_top - local n resuming_build delete_all + local n resuming_build local cache_dir sflag delete_pkg_list shash_bucket pkgqueue_init @@ -7606,15 +7606,17 @@ prepare_ports() { if [ -f "${PACKAGES}/.jailversion" ] && [ "$(cat ${PACKAGES}/.jailversion)" != \ "$(jget ${JAILNAME} version)" ]; then - delete_all="newer version of jail" - elif [ ${CLEAN} -eq 1 ]; then + delete_all_pkgs "newer version of jail" + fi + if [ ${CLEAN} -eq 1 ]; then if [ "${ATOMIC_PACKAGE_REPOSITORY}" != "yes" ] && \ package_dir_exists_and_has_packages; then confirm_if_tty "Are you sure you want to clean all packages?" || \ err 1 "Not cleaning all packages" fi - delete_all="-c specified" - elif [ ${CLEAN_LISTED} -eq 1 ]; then + delete_all_pkgs "-c specified" + fi + if [ ${CLEAN_LISTED} -eq 1 ]; then msg "-C specified, cleaning listed packages" delete_pkg_list=$(mktemp -t poudriere.cleanC) clear_dep_fatal_error @@ -7642,13 +7644,9 @@ prepare_ports() { cat "${delete_pkg_list}" | tr '\n' '\000' | \ xargs -0 rm -rf unlink "${delete_pkg_list}" || : - elif ! ensure_pkg_installed; then - delete_all="pkg package missing" fi - if [ -n "${delete_all}" ]; then - msg_n "${delete_all}, cleaning all packages..." - rm -rf ${PACKAGES:?}/* ${cache_dir} - echo " done" + if ! ensure_pkg_installed; then + delete_all_pkgs "pkg package missing" fi # If the build is being resumed then packages already diff --git a/src/share/poudriere/include/pkg.sh b/src/share/poudriere/include/pkg.sh index 4e29cbfd..786a0455 100644 --- a/src/share/poudriere/include/pkg.sh +++ b/src/share/poudriere/include/pkg.sh @@ -303,3 +303,12 @@ delete_stale_pkg_cache() { return 0 } + +delete_all_pkgs() { + [ $# -eq 1 ] || eargs delete_all_pkgs reason + local reason="$1" + + msg_n "${reason}, cleaning all packages..." + rm -rf ${PACKAGES:?}/* ${cache_dir} + echo " done" +} |