Edit

kc3-lang/automake/py-compile

Branch :

  • Show log

    Commit

  • Author : Tom Tromey
    Date : 1999-11-22 19:22:02
    Hash : ebdbd5b3
    Message : Jumbo patch: First cut at Python support (untested). A few miscellaneous bug fixes.

  • py-compile
  • #!/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 || :