forked from rpms/python-rpm-macros
25 lines
886 B
Plaintext
25 lines
886 B
Plaintext
# Note that the path could itself be a python file, or a directory
|
|
|
|
# Python's compile_all module only works on directories, and requires a max
|
|
# recursion depth
|
|
|
|
# Usage:
|
|
# %py_byte_compile <interpereter> <path>
|
|
# Example:
|
|
# %py_byte_compile %{__python3} %{buildroot}%{_datadir}/spam/plugins/
|
|
|
|
# This will terminate build on SyntaxErrors, if you want to avoid that,
|
|
# use it in a subshell like this:
|
|
# (%{py_byte_compile <interpereter> <path>}) || :
|
|
|
|
%py_byte_compile()\
|
|
python_binary="%1"\
|
|
buildroot_path="%2"\
|
|
bytecode_compilation_path=".${buildroot_path/#$RPM_BUILD_ROOT}"\
|
|
failure=0\
|
|
pushd $RPM_BUILD_ROOT\
|
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -m py_compile || failure=1\
|
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -m py_compile || failure=1\
|
|
popd\
|
|
test $failure -eq 0
|