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 []