]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
naoki: Automatically byte-compile python files.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Feb 2010 23:10:16 +0000 (00:10 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Feb 2010 23:10:16 +0000 (00:10 +0100)
pkgs/Functions
tools/py-compile [moved from src/scripts/py-compile with 56% similarity, mode: 0755]

index 5eed06232279483fac91ac4e8881e4bf21ad0011..722e92fad65e06f96fcd658c1b19456d98acc6cd 100644 (file)
@@ -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 "#####################################################################"
old mode 100644 (file)
new mode 100755 (executable)
similarity index 56%
rename from src/scripts/py-compile
rename to tools/py-compile
index f452162..096c3d6
@@ -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 || :
-