Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBryan Drewery <bryan@shatow.net>2021-09-03 21:21:31 +0300
committerBryan Drewery <bryan@shatow.net>2021-09-03 23:38:15 +0300
commitb999f9fd3a3c59a1451bb2eaed317cabf7569703 (patch)
tree6f2b145ba29d0162ad52f95321d75b64d8cd11e9 /src
parent4c31d8413b2d0e0752181b6b677e1e208d22a72b (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.sh20
-rw-r--r--src/share/poudriere/include/pkg.sh9
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"
+}