/[gentoo-x86]/eclass/python.eclass
Gentoo

Diff of /eclass/python.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.48 Revision 1.49
1# Copyright 1999-2008 Gentoo Foundation 1# Copyright 1999-2008 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.48 2008/10/26 17:34:44 hawking Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.49 2008/10/26 17:46:31 hawking Exp $
4 4
5# @ECLASS: python.eclass 5# @ECLASS: python.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# python@gentoo.org 7# python@gentoo.org
8# 8#
199# Options passed to this function are passed to compileall.py 199# Options passed to this function are passed to compileall.py
200# 200#
201# Example: 201# Example:
202# python_mod_optimize /usr/share/codegen 202# python_mod_optimize /usr/share/codegen
203python_mod_optimize() { 203python_mod_optimize() {
204 local mydirs myfiles myroot myopts 204 local myroot mydirs=() myfiles=() myopts=()
205 205
206 # Check if phase is pkg_postinst() 206 # Check if phase is pkg_postinst()
207 [[ ${EBUILD_PHASE} != postinst ]] &&\ 207 [[ ${EBUILD_PHASE} != postinst ]] &&\
208 die "${FUNCNAME} should only be run in pkg_postinst()" 208 die "${FUNCNAME} should only be run in pkg_postinst()"
209 209
210 # strip trailing slash 210 # strip trailing slash
211 myroot="${ROOT%/}" 211 myroot="${ROOT%/}"
212 212
213 # respect ROOT and options passed to compileall.py 213 # respect ROOT and options passed to compileall.py
214 while [ $# -gt 0 ]; do 214 while (($#)); do
215 case $1 in 215 case $1 in
216 -l|-f|-q) 216 -l|-f|-q)
217 myopts="${myopts} $1" 217 myopts+=("$1")
218 ;; 218 ;;
219 -d|-x) 219 -d|-x)
220 myopts="${myopts} $1 $2" 220 myopts+=("$1" "$2")
221 shift 221 shift
222 ;; 222 ;;
223 -*) 223 -*)
224 ewarn "${FUNCNAME}: Ignoring compile option $1" 224 ewarn "${FUNCNAME}: Ignoring compile option $1"
225 ;; 225 ;;
226 *) 226 *)
227 [ ! -e "${myroot}/${1}" ] && ewarn "${myroot}/${1} doesn't exist!" 227 if [[ -d "${myroot}"/$1 ]]; then
228 [ -d "${myroot}/${1#/}" ] && mydirs="${mydirs} ${myroot}/${1#/}" 228 mydirs+=("${myroot}/$1")
229 elif [[ -f "${myroot}"/$1 ]]; then
229 # Files are passed to python_mod_compile which is ROOT-aware 230 # Files are passed to python_mod_compile which is ROOT-aware
230 [ -f "${myroot}/${1}" ] && myfiles="${myfiles} ${1}" 231 myfiles+=("$1")
232 elif [[ -e "${myroot}/$1" ]]; then
233 ewarn "${myroot}/$1 is not a file or directory!"
234 else
235 ewarn "${myroot}/$1 doesn't exist!"
236 fi
231 ;; 237 ;;
232 esac 238 esac
233 shift 239 shift
234 done 240 done
235 241
239 else 245 else
240 python_version 246 python_version
241 fi 247 fi
242 248
243 # set additional opts 249 # set additional opts
244 myopts="${myopts} -q" 250 myopts+=(-q)
245 251
246 ebegin "Byte compiling python modules for python-${PYVER} .." 252 ebegin "Byte compiling python modules for python-${PYVER} .."
247 if [ -n "${mydirs}" ]; then 253 if ((${#mydirs[@]})); then
248 python${PYVER} \ 254 python${PYVER} \
249 ${myroot}/usr/$(get_libdir)/python${PYVER}/compileall.py \ 255 "${myroot}"/usr/$(get_libdir)/python${PYVER}/compileall.py \
250 ${myopts} ${mydirs} 256 "${myopts[@]}" "${mydirs[@]}"
251 python${PYVER} -O \ 257 python${PYVER} -O \
252 ${myroot}/usr/$(get_libdir)/python${PYVER}/compileall.py \ 258 "${myroot}"/usr/$(get_libdir)/python${PYVER}/compileall.py \
253 ${myopts} ${mydirs} 259 "${myopts[@]}" "${mydirs[@]}"
254 fi 260 fi
255 261
256 if [ -n "${myfiles}" ]; then 262 if ((${#myfiles[@]})); then
257 python_mod_compile ${myfiles} 263 python_mod_compile "${myfiles[@]}"
258 fi 264 fi
259 265
260 eend $? 266 eend $?
261} 267}
262 268

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49

  ViewVC Help
Powered by ViewVC 1.1.20