summaryrefslogtreecommitdiffstats
path: root/py-compile
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>1999-08-27 05:04:01 +0000
committerMatt Wilson <msw@redhat.com>1999-08-27 05:04:01 +0000
commitadca6426e3d7cea55cd6b146cfefc2ddb5dedea8 (patch)
tree83f305c3f84fea208be21ab0e3d7b4f1bef68605 /py-compile
parent90cd463be6abaac3548e73019116ac4f7db9be76 (diff)
downloadanaconda-adca6426e3d7cea55cd6b146cfefc2ddb5dedea8.tar.gz
anaconda-adca6426e3d7cea55cd6b146cfefc2ddb5dedea8.tar.xz
anaconda-adca6426e3d7cea55cd6b146cfefc2ddb5dedea8.zip
python compiler
Diffstat (limited to 'py-compile')
-rwxr-xr-xpy-compile68
1 files changed, 68 insertions, 0 deletions
diff --git a/py-compile b/py-compile
new file mode 100755
index 000000000..b60649de6
--- /dev/null
+++ b/py-compile
@@ -0,0 +1,68 @@
+#!/bin/sh
+# called as "py-compile [--basedir DIR] PY_FILES ...
+
+if [ -z "$PYTHON" ]; then
+ PYTHON=python
+fi
+
+basedir=
+
+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"
+ exit 0
+ ;;
+esac
+
+if [ $# = 0 ]; then
+ echo "No files given to $0" 1>&2
+ exit 1
+fi
+
+# 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)"
+fi
+
+$PYTHON -c "
+import sys, os, string, py_compile
+
+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,
+ sys.stdout.flush()
+ py_compile.compile(path)
+print" || exit $?
+
+# this will fail for python < 1.5, but that doesn't matter ...
+$PYTHON -O -c "
+import sys, os, string, py_compile
+
+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 || :
+