[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.119.167.62: ~ $
"""distutils.command.build_scripts

Implements the Distutils 'build_scripts' command."""

__revision__ = "$Id$"

import os, re
from stat import ST_MODE
from distutils.core import Command
from distutils.dep_util import newer
from distutils.util import convert_path
from distutils import log

# check if Python is called on the first line with this expression
first_line_re = re.compile('^#!.*python[0-9.]*([ \t].*)?$')

class build_scripts (Command):

    description = "\"build\" scripts (copy and fixup #! line)"

    user_options = [
        ('build-dir=', 'd', "directory to \"build\" (copy) to"),
        ('force', 'f', "forcibly build everything (ignore file timestamps"),
        ('executable=', 'e', "specify final destination interpreter path"),
        ]

    boolean_options = ['force']


    def initialize_options (self):
        self.build_dir = None
        self.scripts = None
        self.force = None
        self.executable = None
        self.outfiles = None

    def finalize_options (self):
        self.set_undefined_options('build',
                                   ('build_scripts', 'build_dir'),
                                   ('force', 'force'),
                                   ('executable', 'executable'))
        self.scripts = self.distribution.scripts

    def get_source_files(self):
        return self.scripts

    def run (self):
        if not self.scripts:
            return
        self.copy_scripts()


    def copy_scripts (self):
        """Copy each script listed in 'self.scripts'; if it's marked as a
        Python script in the Unix way (first line matches 'first_line_re',
        ie. starts with "\#!" and contains "python"), then adjust the first
        line to refer to the current Python interpreter as we copy.
        """
        _sysconfig = __import__('sysconfig')
        self.mkpath(self.build_dir)
        outfiles = []
        for script in self.scripts:
            adjust = 0
            script = convert_path(script)
            outfile = os.path.join(self.build_dir, os.path.basename(script))
            outfiles.append(outfile)

            if not self.force and not newer(script, outfile):
                log.debug("not copying %s (up-to-date)", script)
                continue

            # Always open the file, but ignore failures in dry-run mode --
            # that way, we'll get accurate feedback if we can read the
            # script.
            try:
                f = open(script, "r")
            except IOError:
                if not self.dry_run:
                    raise
                f = None
            else:
                first_line = f.readline()
                if not first_line:
                    self.warn("%s is an empty file (skipping)" % script)
                    continue

                match = first_line_re.match(first_line)
                if match:
                    adjust = 1
                    post_interp = match.group(1) or ''

            if adjust:
                log.info("copying and adjusting %s -> %s", script,
                         self.build_dir)
                if not self.dry_run:
                    outf = open(outfile, "w")
                    if not _sysconfig.is_python_build():
                        outf.write("#!%s%s\n" %
                                   (self.executable,
                                    post_interp))
                    else:
                        outf.write("#!%s%s\n" %
                                   (os.path.join(
                            _sysconfig.get_config_var("BINDIR"),
                           "python%s%s" % (_sysconfig.get_config_var("VERSION"),
                                           _sysconfig.get_config_var("EXE"))),
                                    post_interp))
                    outf.writelines(f.readlines())
                    outf.close()
                if f:
                    f.close()
            else:
                if f:
                    f.close()
                self.copy_file(script, outfile)

        if os.name == 'posix':
            for file in outfiles:
                if self.dry_run:
                    log.info("changing mode of %s", file)
                else:
                    oldmode = os.stat(file)[ST_MODE] & 07777
                    newmode = (oldmode | 0555) & 07777
                    if newmode != oldmode:
                        log.info("changing mode of %s from %o to %o",
                                 file, oldmode, newmode)
                        os.chmod(file, newmode)

    # copy_scripts ()

# class build_scripts

Filemanager

Name Type Size Permission Actions
.__init__.pyo.40009 File 665 B 0644
.bdist.pyo.40009 File 5.1 KB 0644
.bdist_dumb.pyo.40009 File 4.92 KB 0644
.build.pyo.40009 File 5.03 KB 0644
.build_clib.pyo.40009 File 6.28 KB 0644
.build_ext.pyo.40009 File 19.09 KB 0644
.build_scripts.pyo.40009 File 4.43 KB 0644
.check.pyo.40009 File 6.08 KB 0644
.clean.pyo.40009 File 3.1 KB 0644
.config.pyo.40009 File 12.39 KB 0644
.install.pyo.40009 File 16.5 KB 0644
.install_data.pyo.40009 File 3.09 KB 0644
.install_egg_info.pyo.40009 File 3.68 KB 0644
.install_headers.pyo.40009 File 2.24 KB 0644
.install_lib.pyo.40009 File 6.63 KB 0644
.install_scripts.pyo.40009 File 2.93 KB 0644
.register.pyo.40009 File 9.98 KB 0644
.sdist.pyo.40009 File 16.31 KB 0644
.upload.pyo.40009 File 6.13 KB 0644
__init__.py File 822 B 0644
__init__.pyc File 665 B 0644
__init__.pyo File 665 B 0644
bdist.py File 5.46 KB 0644
bdist.pyc File 5.1 KB 0644
bdist.pyo File 5.1 KB 0644
bdist_dumb.py File 5.07 KB 0644
bdist_dumb.pyc File 4.92 KB 0644
bdist_dumb.pyo File 4.92 KB 0644
bdist_msi.py File 34.37 KB 0644
bdist_msi.pyc File 23.45 KB 0644
bdist_msi.pyo File 23.35 KB 0644
bdist_rpm.py File 20.55 KB 0644
bdist_rpm.pyc File 17.32 KB 0644
bdist_rpm.pyo File 17.24 KB 0644
bdist_wininst.py File 14.65 KB 0644
bdist_wininst.pyc File 10.55 KB 0644
bdist_wininst.pyo File 10.47 KB 0644
build.py File 5.31 KB 0644
build.pyc File 5.03 KB 0644
build.pyo File 5.03 KB 0644
build_clib.py File 7.94 KB 0644
build_clib.pyc File 6.28 KB 0644
build_clib.pyo File 6.28 KB 0644
build_ext.py File 31.75 KB 0644
build_ext.py.debug-build File 31.53 KB 0644
build_ext.pyc File 19.09 KB 0644
build_ext.pyo File 19.09 KB 0644
build_py.py File 15.92 KB 0644
build_py.pyc File 11.24 KB 0644
build_py.pyo File 11.17 KB 0644
build_scripts.py File 4.49 KB 0644
build_scripts.pyc File 4.43 KB 0644
build_scripts.pyo File 4.43 KB 0644
check.py File 5.43 KB 0644
check.pyc File 6.08 KB 0644
check.pyo File 6.08 KB 0644
clean.py File 2.75 KB 0644
clean.pyc File 3.1 KB 0644
clean.pyo File 3.1 KB 0644
command_template File 719 B 0644
config.py File 12.82 KB 0644
config.pyc File 12.39 KB 0644
config.pyo File 12.39 KB 0644
install.py File 25.65 KB 0644
install.pyc File 16.5 KB 0644
install.pyo File 16.5 KB 0644
install_data.py File 2.78 KB 0644
install_data.pyc File 3.09 KB 0644
install_data.pyo File 3.09 KB 0644
install_egg_info.py File 2.53 KB 0644
install_egg_info.pyc File 3.68 KB 0644
install_egg_info.pyo File 3.68 KB 0644
install_headers.py File 1.31 KB 0644
install_headers.pyc File 2.24 KB 0644
install_headers.pyo File 2.24 KB 0644
install_lib.py File 8.14 KB 0644
install_lib.pyc File 6.63 KB 0644
install_lib.pyo File 6.63 KB 0644
install_scripts.py File 2.02 KB 0644
install_scripts.pyc File 2.93 KB 0644
install_scripts.pyo File 2.93 KB 0644
register.py File 11.56 KB 0644
register.pyc File 9.98 KB 0644
register.pyo File 9.98 KB 0644
sdist.py File 18.12 KB 0644
sdist.pyc File 16.31 KB 0644
sdist.pyo File 16.31 KB 0644
upload.py File 6.84 KB 0644
upload.pyc File 6.13 KB 0644
upload.pyo File 6.13 KB 0644
wininst-6.0.exe File 60 KB 0644
wininst-7.1.exe File 64 KB 0644
wininst-8.0.exe File 60 KB 0644
wininst-9.0-amd64.exe File 218.5 KB 0644
wininst-9.0.exe File 191.5 KB 0644