69 lines
1.4 KiB
Plaintext
69 lines
1.4 KiB
Plaintext
|
#!/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 || :
|
||
|
|