"Fossies" - the Fresh Open Source Software Archive

Member "opensaf-5.21.09/py-compile" (14 Sep 2021, 4672 Bytes) of package /linux/misc/opensaf-5.21.09.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Bash source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "py-compile": 5.21.03_vs_5.21.06.

    1 #!/bin/sh
    2 # py-compile - Compile a Python program
    3 
    4 scriptversion=2018-03-07.03; # UTC
    5 
    6 # Copyright (C) 2000-2018 Free Software Foundation, Inc.
    7 
    8 # This program is free software; you can redistribute it and/or modify
    9 # it under the terms of the GNU General Public License as published by
   10 # the Free Software Foundation; either version 2, or (at your option)
   11 # any later version.
   12 
   13 # This program is distributed in the hope that it will be useful,
   14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
   15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   16 # GNU General Public License for more details.
   17 
   18 # You should have received a copy of the GNU General Public License
   19 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
   20 
   21 # As a special exception to the GNU General Public License, if you
   22 # distribute this file as part of a program that contains a
   23 # configuration script generated by Autoconf, you may include it under
   24 # the same distribution terms that you use for the rest of that program.
   25 
   26 # This file is maintained in Automake, please report
   27 # bugs to <bug-automake@gnu.org> or send patches to
   28 # <automake-patches@gnu.org>.
   29 
   30 if [ -z "$PYTHON" ]; then
   31   PYTHON=python
   32 fi
   33 
   34 me=py-compile
   35 
   36 usage_error ()
   37 {
   38   echo "$me: $*" >&2
   39   echo "Try '$me --help' for more information." >&2
   40   exit 1
   41 }
   42 
   43 basedir=
   44 destdir=
   45 while test $# -ne 0; do
   46   case "$1" in
   47     --basedir)
   48       if test $# -lt 2; then
   49         usage_error "option '--basedir' requires an argument"
   50       else
   51         basedir=$2
   52       fi
   53       shift
   54       ;;
   55     --destdir)
   56       if test $# -lt 2; then
   57         usage_error "option '--destdir' requires an argument"
   58       else
   59         destdir=$2
   60       fi
   61       shift
   62       ;;
   63     -h|--help)
   64       cat <<\EOF
   65 Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..."
   66 
   67 Byte compile some python scripts FILES.  Use --destdir to specify any
   68 leading directory path to the FILES that you don't want to include in the
   69 byte compiled file.  Specify --basedir for any additional path information you
   70 do want to be shown in the byte compiled file.
   71 
   72 Example:
   73   py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py
   74 
   75 Report bugs to <bug-automake@gnu.org>.
   76 EOF
   77       exit $?
   78       ;;
   79     -v|--version)
   80       echo "$me $scriptversion"
   81       exit $?
   82       ;;
   83     --)
   84       shift
   85       break
   86       ;;
   87     -*)
   88       usage_error "unrecognized option '$1'"
   89       ;;
   90     *)
   91       break
   92       ;;
   93   esac
   94   shift
   95 done
   96 
   97 files=$*
   98 if test -z "$files"; then
   99     usage_error "no files given"
  100 fi
  101 
  102 # if basedir was given, then it should be prepended to filenames before
  103 # byte compilation.
  104 if [ -z "$basedir" ]; then
  105     pathtrans="path = file"
  106 else
  107     pathtrans="path = os.path.join('$basedir', file)"
  108 fi
  109 
  110 # if destdir was given, then it needs to be prepended to the filename to
  111 # byte compile but not go into the compiled file.
  112 if [ -z "$destdir" ]; then
  113     filetrans="filepath = path"
  114 else
  115     filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
  116 fi
  117 
  118 $PYTHON -c "
  119 import sys, os, py_compile, imp
  120 
  121 files = '''$files'''
  122 
  123 sys.stdout.write('Byte-compiling python modules...\n')
  124 for file in files.split():
  125     $pathtrans
  126     $filetrans
  127     if not os.path.exists(filepath) or not (len(filepath) >= 3
  128                                             and filepath[-3:] == '.py'):
  129         continue
  130     sys.stdout.write(file)
  131     sys.stdout.flush()
  132     if hasattr(imp, 'get_tag'):
  133         py_compile.compile(filepath, imp.cache_from_source(filepath), path)
  134     else:
  135         py_compile.compile(filepath, filepath + 'c', path)
  136 sys.stdout.write('\n')" || exit $?
  137 
  138 # this will fail for python < 1.5, but that doesn't matter ...
  139 $PYTHON -O -c "
  140 import sys, os, py_compile, imp
  141 
  142 # pypy does not use .pyo optimization
  143 if hasattr(sys, 'pypy_translation_info'):
  144     sys.exit(0)
  145 
  146 files = '''$files'''
  147 sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
  148 for file in files.split():
  149     $pathtrans
  150     $filetrans
  151     if not os.path.exists(filepath) or not (len(filepath) >= 3
  152                                             and filepath[-3:] == '.py'):
  153         continue
  154     sys.stdout.write(file)
  155     sys.stdout.flush()
  156     if hasattr(imp, 'get_tag'):
  157         py_compile.compile(filepath, imp.cache_from_source(filepath, False), path)
  158     else:
  159         py_compile.compile(filepath, filepath + 'o', path)
  160 sys.stdout.write('\n')" 2>/dev/null || :
  161 
  162 # Local Variables:
  163 # mode: shell-script
  164 # sh-indentation: 2
  165 # eval: (add-hook 'before-save-hook 'time-stamp)
  166 # time-stamp-start: "scriptversion="
  167 # time-stamp-format: "%:y-%02m-%02d.%02H"
  168 # time-stamp-time-zone: "UTC0"
  169 # time-stamp-end: "; # UTC"
  170 # End: