xbps-triggers: new trigger to generate/remove python byte-code files.

This commit is contained in:
Juan RP 2011-10-05 14:26:33 +02:00
parent 000927b580
commit c57f7509a3
2 changed files with 85 additions and 1 deletions

View File

@ -0,0 +1,84 @@
#!/bin/sh
#
# Trigger to compile python code into native bytecode and remove
# generated bytecode files.
#
# Packages need to set the variable pycompile_dirs with a list
# of directories (absolute path) separated by spaces, and WITHOUT
# the first slash, e.g:
#
# pycompile_dirs="usr/blah/foo usr/zoo/d00d"
#
# or if the code resides in standard site-packages directory,
# need to set the pycompile_module variable:
#
# pycompile_module="blah foo"
#
# Arguments: $ACTION = [run/targets]
# $TARGET = [post-install/pre-remove]
# $PKGNAME
# $VERSION
# $UPDATE = [yes/no]
#
ACTION="$1"
TARGET="$2"
PKGNAME="$3"
VERSION="$4"
UPDATE="$5"
# Current python version used in XBPS.
PYVER="2.7"
export PATH="$PATH:/usr/local/bin"
compile()
{
for f in ${pycompile_dirs}; do
echo "Byte-compiling python code in ${f}..."
python -O -m compileall -f -q ${f}
done
for f in ${pycompile_module}; do
echo "Byte-compiling python code for module ${f}..."
python -O -m compileall -f -q usr/lib/python${PYVER}/site-packages/${f}
done
}
remove()
{
for f in ${pycompile_dirs}; do
echo "Removing byte-compiled python files in ${f}..."
find ${f} -type f -name \*.py[co] -delete 2>&1 >/dev/null
done
for f in ${pycompile_module}; do
echo "Removing byte-compiled python code for module ${f}..."
find usr/lib/python${PYVER}/site-packages/${f} \
-type f -name \*.py[co] -delete 2>&1 >/dev/null
done
}
case "$ACTION" in
targets)
echo "post-install pre-remove"
;;
run)
[ ! -x usr/bin/python ] && exit 0
[ -z "${pycompile_dirs}" -a -z "${pycompile_module}" ] && exit 0
case "$TARGET" in
post-install)
compile
;;
pre-remove)
remove
;;
*)
exit 1
;;
esac
;;
*)
exit 1
;;
esac
exit 0

View File

@ -1,6 +1,6 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.19
version=0.21
build_style=custom-install
short_desc="XBPS triggers"
maintainer="Juan RP <xtraeme@gmail.com>"