Forced-removing of a non-existing directory breaks the build.

Noticed by "Andy Johnson" <ajohnson@aecno.com>, who provided a patch that I adapted.

 /trunk/scripts/functions |   13    10     3     0 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
This commit is contained in:
Yann E. MORIN" 2009-01-20 20:10:50 +00:00
parent 28176fe21e
commit 0fc2762de7

View File

@ -242,11 +242,18 @@ CT_MktempDir() {
return 0
}
# Removes one or more directories, even if it is read-only
# Removes one or more directories, even if it is read-only, or its parent is
# Usage: CT_DoForceRmdir dir [...]
CT_DoForceRmdir() {
CT_DoExecLog ALL chmod -R u+w "${@}"
CT_DoExecLog ALL rm -rf "${@}"
local dir
local mode
for dir in "${@}"; do
[ -d "${dir}" ] || continue
mode="$(stat -c '%a' "${dir}")"
CT_DoExecLog ALL chmod -R u+w "$(dirname "${dir}")"
CT_DoExecLog ALL rm -rf "${dir}"
CT_DoExecLog ALL chmod -R ${mode} "$(dirname "${dir}")"
done
}
# Echoes the specified string on stdout until the pipe breaks.