diff options
Diffstat (limited to 'lldb/scripts/install_custom_python.py')
| -rw-r--r-- | lldb/scripts/install_custom_python.py | 146 |
1 files changed, 72 insertions, 74 deletions
diff --git a/lldb/scripts/install_custom_python.py b/lldb/scripts/install_custom_python.py index 6e263fa714e0..04df6fbc3cea 100644 --- a/lldb/scripts/install_custom_python.py +++ b/lldb/scripts/install_custom_python.py @@ -30,122 +30,112 @@ import sys def copy_one_file(dest_dir, source_dir, filename): source_path = os.path.join(source_dir, filename) dest_path = os.path.join(dest_dir, filename) - print('Copying file %s ==> %s...' % (source_path, dest_path)) + print("Copying file %s ==> %s..." % (source_path, dest_path)) shutil.copyfile(source_path, dest_path) -def copy_named_files( - dest_dir, - source_dir, - files, - extensions, - copy_debug_suffix_also): - for (file, ext) in itertools.product(files, extensions): - copy_one_file(dest_dir, source_dir, file + '.' + ext) +def copy_named_files(dest_dir, source_dir, files, extensions, copy_debug_suffix_also): + for file, ext in itertools.product(files, extensions): + copy_one_file(dest_dir, source_dir, file + "." + ext) if copy_debug_suffix_also: - copy_one_file(dest_dir, source_dir, file + '_d.' + ext) + copy_one_file(dest_dir, source_dir, file + "_d." + ext) def copy_subdirectory(dest_dir, source_dir, subdir): dest_dir = os.path.join(dest_dir, subdir) source_dir = os.path.join(source_dir, subdir) - print('Copying directory %s ==> %s...' % (source_dir, dest_dir)) + print("Copying directory %s ==> %s..." % (source_dir, dest_dir)) shutil.copytree(source_dir, dest_dir) def copy_distro(dest_dir, dest_subdir, source_dir, source_prefix): dest_dir = os.path.join(dest_dir, dest_subdir) - print('Copying distribution %s ==> %s' % (source_dir, dest_dir)) + print("Copying distribution %s ==> %s" % (source_dir, dest_dir)) os.mkdir(dest_dir) - PCbuild_dir = os.path.join(source_dir, 'PCbuild') + PCbuild_dir = os.path.join(source_dir, "PCbuild") if source_prefix: PCbuild_dir = os.path.join(PCbuild_dir, source_prefix) # First copy the files that go into the root of the new distribution. This # includes the Python executables, python27(_d).dll, and relevant PDB # files. - print('Copying Python executables...') + print("Copying Python executables...") + copy_named_files(dest_dir, PCbuild_dir, ["w9xpopen"], ["exe", "pdb"], False) + copy_named_files(dest_dir, PCbuild_dir, ["python_d", "pythonw_d"], ["exe"], False) copy_named_files( - dest_dir, PCbuild_dir, ['w9xpopen'], [ - 'exe', 'pdb'], False) - copy_named_files( - dest_dir, PCbuild_dir, [ - 'python_d', 'pythonw_d'], ['exe'], False) - copy_named_files( - dest_dir, PCbuild_dir, [ - 'python', 'pythonw'], [ - 'exe', 'pdb'], False) - copy_named_files(dest_dir, PCbuild_dir, ['python27'], ['dll', 'pdb'], True) + dest_dir, PCbuild_dir, ["python", "pythonw"], ["exe", "pdb"], False + ) + copy_named_files(dest_dir, PCbuild_dir, ["python27"], ["dll", "pdb"], True) # Next copy everything in the Include directory. - print('Copying Python include directory') - copy_subdirectory(dest_dir, source_dir, 'Include') + print("Copying Python include directory") + copy_subdirectory(dest_dir, source_dir, "Include") # Copy Lib folder (builtin Python modules) - print('Copying Python Lib directory') - copy_subdirectory(dest_dir, source_dir, 'Lib') + print("Copying Python Lib directory") + copy_subdirectory(dest_dir, source_dir, "Lib") # Copy tools folder. These are probably not necessary, but we copy them anyway to # match an official distribution as closely as possible. Note that we don't just copy # the subdirectory recursively. The source distribution ships with many more tools # than what you get by installing python regularly. We only copy the tools that appear # in an installed distribution. - tools_dest_dir = os.path.join(dest_dir, 'Tools') - tools_source_dir = os.path.join(source_dir, 'Tools') + tools_dest_dir = os.path.join(dest_dir, "Tools") + tools_source_dir = os.path.join(source_dir, "Tools") os.mkdir(tools_dest_dir) - copy_subdirectory(tools_dest_dir, tools_source_dir, 'i18n') - copy_subdirectory(tools_dest_dir, tools_source_dir, 'pynche') - copy_subdirectory(tools_dest_dir, tools_source_dir, 'scripts') - copy_subdirectory(tools_dest_dir, tools_source_dir, 'versioncheck') - copy_subdirectory(tools_dest_dir, tools_source_dir, 'webchecker') + copy_subdirectory(tools_dest_dir, tools_source_dir, "i18n") + copy_subdirectory(tools_dest_dir, tools_source_dir, "pynche") + copy_subdirectory(tools_dest_dir, tools_source_dir, "scripts") + copy_subdirectory(tools_dest_dir, tools_source_dir, "versioncheck") + copy_subdirectory(tools_dest_dir, tools_source_dir, "webchecker") pyd_names = [ - '_ctypes', - '_ctypes_test', - '_elementtree', - '_multiprocessing', - '_socket', - '_testcapi', - 'pyexpat', - 'select', - 'unicodedata', - 'winsound'] + "_ctypes", + "_ctypes_test", + "_elementtree", + "_multiprocessing", + "_socket", + "_testcapi", + "pyexpat", + "select", + "unicodedata", + "winsound", + ] # Copy builtin extension modules (pyd files) - dlls_dir = os.path.join(dest_dir, 'DLLs') + dlls_dir = os.path.join(dest_dir, "DLLs") os.mkdir(dlls_dir) - print('Copying DLLs directory') - copy_named_files(dlls_dir, PCbuild_dir, pyd_names, ['pyd', 'pdb'], True) + print("Copying DLLs directory") + copy_named_files(dlls_dir, PCbuild_dir, pyd_names, ["pyd", "pdb"], True) # Copy libs folder (implibs for the pyd files) - libs_dir = os.path.join(dest_dir, 'libs') + libs_dir = os.path.join(dest_dir, "libs") os.mkdir(libs_dir) - print('Copying libs directory') - copy_named_files(libs_dir, PCbuild_dir, pyd_names, ['lib'], False) - copy_named_files(libs_dir, PCbuild_dir, ['python27'], ['lib'], True) + print("Copying libs directory") + copy_named_files(libs_dir, PCbuild_dir, pyd_names, ["lib"], False) + copy_named_files(libs_dir, PCbuild_dir, ["python27"], ["lib"], True) -parser = argparse.ArgumentParser( - description='Install a custom Python distribution') +parser = argparse.ArgumentParser(description="Install a custom Python distribution") parser.add_argument( - '--source', - required=True, - help='The root of the source tree where Python is built.') + "--source", required=True, help="The root of the source tree where Python is built." +) parser.add_argument( - '--dest', - required=True, - help='The location to install the Python distributions.') + "--dest", required=True, help="The location to install the Python distributions." +) parser.add_argument( - '--overwrite', + "--overwrite", default=False, - action='store_true', - help='If the destination directory already exists, destroys its contents first.') + action="store_true", + help="If the destination directory already exists, destroys its contents first.", +) parser.add_argument( - '--silent', + "--silent", default=False, - action='store_true', - help='If --overwite was specified, suppress confirmation before deleting a directory tree.') + action="store_true", + help="If --overwite was specified, suppress confirmation before deleting a directory tree.", +) args = parser.parse_args() @@ -153,23 +143,31 @@ args.source = os.path.normpath(args.source) args.dest = os.path.normpath(args.dest) if not os.path.exists(args.source): - print('The source directory %s does not exist. Exiting...') + print("The source directory %s does not exist. Exiting...") sys.exit(1) if os.path.exists(args.dest): if not args.overwrite: - print('The destination directory \'%s\' already exists and --overwrite was not specified. Exiting...' % args.dest) + print( + "The destination directory '%s' already exists and --overwrite was not specified. Exiting..." + % args.dest + ) sys.exit(1) while not args.silent: - print('Ok to recursively delete \'%s\' and all contents (Y/N)? Choosing Y will permanently delete the contents.' % args.dest) + print( + "Ok to recursively delete '%s' and all contents (Y/N)? Choosing Y will permanently delete the contents." + % args.dest + ) result = str.upper(sys.stdin.read(1)) - if result == 'N': - print('Unable to copy files to the destination. The destination already exists.') + if result == "N": + print( + "Unable to copy files to the destination. The destination already exists." + ) sys.exit(1) - elif result == 'Y': + elif result == "Y": break shutil.rmtree(args.dest) os.mkdir(args.dest) -copy_distro(args.dest, 'x86', args.source, None) -copy_distro(args.dest, 'x64', args.source, 'amd64') +copy_distro(args.dest, "x86", args.source, None) +copy_distro(args.dest, "x64", args.source, "amd64") |
