NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

install_scripts.py (1786B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\command\install_scripts.py
      2 __revision__ = '$Id: install_scripts.py 82110 2010-06-20 13:38:51Z kristjan.jonsson $'
      3 import os
      4 from distutils.core import Command
      5 from distutils import log
      6 from stat import ST_MODE
      7 
      8 class install_scripts(Command):
      9     description = 'install scripts (Python or otherwise)'
     10     user_options = [('install-dir=', 'd', 'directory to install scripts to'),
     11      ('build-dir=', 'b', 'build directory (where to install from)'),
     12      ('force', 'f', 'force installation (overwrite existing files)'),
     13      ('skip-build', None, 'skip the build steps')]
     14     boolean_options = ['force', 'skip-build']
     15 
     16     def initialize_options(self):
     17         self.install_dir = None
     18         self.force = 0
     19         self.build_dir = None
     20         self.skip_build = None
     21 
     22     def finalize_options(self):
     23         self.set_undefined_options('build', ('build_scripts', 'build_dir'))
     24         self.set_undefined_options('install', ('install_scripts', 'install_dir'), ('force', 'force'), ('skip_build', 'skip_build'))
     25 
     26     def run(self):
     27         if not self.skip_build:
     28             self.run_command('build_scripts')
     29         self.outfiles = self.copy_tree(self.build_dir, self.install_dir)
     30         if os.name == 'posix':
     31             for file in self.get_outputs():
     32                 if self.dry_run:
     33                     log.info('changing mode of %s', file)
     34                 else:
     35                     mode = (os.stat(file)[ST_MODE] | 365) & 4095
     36                     log.info('changing mode of %s to %o', file, mode)
     37                     os.chmod(file, mode)
     38 
     39     def get_inputs(self):
     40         return self.distribution.scripts or []
     41 
     42     def get_outputs(self):
     43         return self.outfiles or []