summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Polatel <hawking@gentoo.org>2008-10-26 21:21:34 +0000
committerAli Polatel <hawking@gentoo.org>2008-10-26 21:21:34 +0000
commite9cc0c1a02cee20941a6c1a69eadffb4a5c0012a (patch)
tree0e5321fe12ecee7583347960a062c24d081a8870 /eclass/python.eclass
parentUpdate kvirc live ebuild so it reflect issues reported by Arfrever. Thanks to... (diff)
downloadhistorical-e9cc0c1a02cee20941a6c1a69eadffb4a5c0012a.tar.gz
historical-e9cc0c1a02cee20941a6c1a69eadffb4a5c0012a.tar.bz2
historical-e9cc0c1a02cee20941a6c1a69eadffb4a5c0012a.zip
Bashify python_mod_cleanup, make it work for paths with spaces in them.
Diffstat (limited to 'eclass/python.eclass')
-rw-r--r--eclass/python.eclass37
1 files changed, 17 insertions, 20 deletions
diff --git a/eclass/python.eclass b/eclass/python.eclass
index ff53db0edcb1..a206eda11e88 100644
--- a/eclass/python.eclass
+++ b/eclass/python.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.49 2008/10/26 17:46:31 hawking Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.50 2008/10/26 21:21:34 hawking Exp $
# @ECLASS: python.eclass
# @MAINTAINER:
@@ -278,7 +278,7 @@ python_mod_optimize() {
#
# This function should only be run in pkg_postrm()
python_mod_cleanup() {
- local SEARCH_PATH myroot
+ local SEARCH_PATH=() myroot src_py
# Check if phase is pkg_postrm()
[[ ${EBUILD_PHASE} != postrm ]] &&\
@@ -287,28 +287,25 @@ python_mod_cleanup() {
# strip trailing slash
myroot="${ROOT%/}"
- if [ $# -gt 0 ]; then
- for path in $@; do
- SEARCH_PATH="${SEARCH_PATH} ${myroot}/${path#/}"
- done
+ if (($#)); then
+ SEARCH_PATH=("${@#/}")
+ SEARCH_PATH=("${SEARCH_PATH[@]/#/$myroot/}")
else
- for path in ${myroot}/usr/lib*/python*/site-packages; do
- SEARCH_PATH="${SEARCH_PATH} ${path}"
- done
+ SEARCH_PATH=("${myroot}"/usr/lib*/python*/site-packages)
fi
- for path in ${SEARCH_PATH}; do
+ for path in "${SEARCH_PATH[@]}"; do
einfo "Cleaning orphaned Python bytecode from ${path} .."
- for obj in $(find ${path} -name '*.py[co]'); do
- src_py="${obj%[co]}"
- if [ ! -f "${src_py}" ]; then
- einfo "Purging ${src_py}[co]"
- rm -f ${src_py}[co]
- fi
- done
+ while read -rd ''; do
+ src_py="${REPLY%[co]}"
+ [[ -f "${src_py}" ]] && continue
+ einfo "Purging ${src_py}[co]"
+ rm -f "${src_py}"[co]
+ done < <(find "${path}" -name '*.py[co]' -print0)
+
# attempt to remove directories that maybe empty
- for dir in $(find ${path} -type d | sort -r); do
- rmdir ${dir} 2>/dev/null
- done
+ while read -r dir; do
+ rmdir "${dir}" 2>/dev/null
+ done < <(find "${path}" -type d | sort -r)
done
}