From: Michael Tremer Date: Sun, 21 Feb 2010 23:10:16 +0000 (+0100) Subject: naoki: Automatically byte-compile python files. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23f61239fcddd7bb54974492a152d32f4b89dc33;p=ipfire-3.x.git naoki: Automatically byte-compile python files. --- diff --git a/pkgs/Functions b/pkgs/Functions index 5eed06232..722e92fad 100644 --- a/pkgs/Functions +++ b/pkgs/Functions @@ -32,6 +32,10 @@ define DO_INSTALL_PAM $(foreach file,$(PKG_PAM_FILES),$(call __INSTALL_PAM,$(file))) endef +define DO_PYTHON_COMPILE + @find $(BUILDROOT) -name "*.py" | xargs $(DIR_TOOLS)/py-compile +endef + define DO_PREPARE @echo "#####################################################################" @echo "# $(PKG_NAME) - Preparation started" @@ -78,6 +82,8 @@ define DO_INSTALL $(DO_INSTALL_INIT) $(DO_INSTALL_PAM) + $(DO_PYTHON_COMPILE) + @echo "#####################################################################" @echo "# $(PKG_NAME) - Install finished" @echo "#####################################################################" diff --git a/src/scripts/py-compile b/tools/py-compile old mode 100644 new mode 100755 similarity index 56% rename from src/scripts/py-compile rename to tools/py-compile index f4521628b..096c3d623 --- a/src/scripts/py-compile +++ b/tools/py-compile @@ -1,32 +1,10 @@ #!/bin/sh -# called as "py-compile [--basedir DIR] PY_FILES ... -if [ -z "$PYTHON" ]; then - PYTHON=python -fi - -basedir= +PYTHON=$(which python 2>/dev/null) -case "$1" in - --basedir) - basedir=$2 - shift 2 - ;; - --help) - echo "Usage: py-compile [--basedir DIR] PY_FILES ..." - echo "Byte compile some python scripts. This should be performed" - echo "after they have been moved to the final installation location" - exit 0 - ;; - --version) - echo "py-compile version 0.0" +if [ -z "${PYTHON}" ]; then + # Python is not present. Fail silently. exit 0 - ;; -esac - -if [ $# = 0 ]; then - echo "No files given to $0" 1>&2 - exit 1 fi files="" @@ -37,12 +15,9 @@ for i in $*; do files="$files $i" done -# if basedir was given, then it should be prepended to filenames before -# byte compilation. -if [ -z "$basedir" ]; then - trans="path = file" -else - trans="path = os.path.join('$basedir', file)" +if [ -z "${files}" ]; then + # No files need to be proceeded. + exit 0 fi $PYTHON -c " @@ -51,7 +26,6 @@ import sys, os, string, py_compile files = '''$files''' print 'Byte-compiling python modules...' for file in string.split(files): - $trans if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'): continue print file, @@ -66,11 +40,9 @@ import sys, os, string, py_compile files = '''$files''' print 'Byte-compiling python modules (optimised versions) ...' for file in string.split(files): - $trans if not os.path.exists(path) or not (len(path) >= 3 and path[-3:] == '.py'): continue print file, sys.stdout.flush() py_compile.compile(path) print" 2>/dev/null || : -