mirror of
				https://github.com/keylase/nvidia-patch.git
				synced 2025-10-31 12:42:00 +00:00 
			
		
		
		
	Merge pull request #153 from Snawoot/ap_batch_patch
ap: allow batch operation against multiple package files
This commit is contained in:
		| @@ -16,12 +16,12 @@ This script accepts path to Nvidia Drivers installer, makes .1337 patch and save | ||||
| $ ./autopatch.py --help | ||||
| usage: autopatch.py [-h] [-7 SEVENZIP] [-T TARGET] [-N TARGET_NAME] | ||||
|                     [-S SEARCH] [-R REPLACEMENT] [-o] | ||||
|                     installer_file | ||||
|                     installer_file [installer_file ...] | ||||
|  | ||||
| Generates .1337 patch for Nvidia drivers for Windows | ||||
|  | ||||
| positional arguments: | ||||
|   installer_file        location of installer executable | ||||
|   installer_file        location of installer executable(s) | ||||
|  | ||||
| optional arguments: | ||||
|   -h, --help            show this help message and exit | ||||
|   | ||||
| @@ -22,7 +22,8 @@ def parse_args(): | ||||
|         description="Generates .1337 patch for Nvidia drivers for Windows", | ||||
|         formatter_class=argparse.ArgumentDefaultsHelpFormatter) | ||||
|     parser.add_argument("installer_file", | ||||
|                         help="location of installer executable") | ||||
|                         nargs="+", | ||||
|                         help="location of installer executable(s)") | ||||
|     parser.add_argument("-7", "--7zip", | ||||
|                         default="7z", | ||||
|                         dest="sevenzip", | ||||
| @@ -154,44 +155,45 @@ def main(): | ||||
|     replacement = unhexlify(args.replacement) | ||||
|     assert len(search) == len(replacement), "len() of search and replacement"\ | ||||
|         " is not equal" | ||||
|     patch = make_patch(args.installer_file, | ||||
|                        arch_tgt=args.target, | ||||
|                        search=search, | ||||
|                        replacement=replacement, | ||||
|                        sevenzip=args.sevenzip) | ||||
|     patch_content = format_patch(patch, args.target_name) | ||||
|     if args.stdout: | ||||
|         with open(sys.stdout.fileno(), mode='wb', closefd=False) as out: | ||||
|             out.write(patch_content) | ||||
|     else: | ||||
|         version, product_type = identify_driver(args.installer_file, | ||||
|                                                 sevenzip=args.sevenzip) | ||||
|         drv_prefix = { | ||||
|             "100": "quadro_", | ||||
|             "300": "", | ||||
|             "301": "nsd_", | ||||
|         } | ||||
|         installer_name = os.path.basename(args.installer_file).lower() | ||||
|         if 'winserv2008' in installer_name: | ||||
|             os_prefix = 'ws2012_x64' | ||||
|         elif 'winserv-2016' in installer_name: | ||||
|             os_prefix = 'ws2016_x64' | ||||
|         elif 'win10' in installer_name: | ||||
|             os_prefix = 'win10_x64' | ||||
|         elif 'win7' in installer_name: | ||||
|             os_prefix = 'win7_x64' | ||||
|     for installer_file in args.installer_file: | ||||
|         patch = make_patch(installer_file, | ||||
|                            arch_tgt=args.target, | ||||
|                            search=search, | ||||
|                            replacement=replacement, | ||||
|                            sevenzip=args.sevenzip) | ||||
|         patch_content = format_patch(patch, args.target_name) | ||||
|         if args.stdout: | ||||
|             with open(sys.stdout.fileno(), mode='wb', closefd=False) as out: | ||||
|                 out.write(patch_content) | ||||
|         else: | ||||
|             raise UnknownPlatformException("Can't infer platform from filename %s" | ||||
|                                            % (repr(installer_name),)) | ||||
|         driver_name = drv_prefix[product_type] + version | ||||
|         out_dir = os.path.join( | ||||
|             os.path.dirname( | ||||
|                 os.path.abspath(__file__)), '..', '..', os_prefix, driver_name) | ||||
|         os.makedirs(out_dir, 0o755, True) | ||||
|         out_filename = os.path.join(out_dir, | ||||
|             os.path.splitext(args.target_name)[0] + PATCH_EXT) | ||||
|         with open(out_filename, 'xb') as out: | ||||
|             out.write(patch_content) | ||||
|             version, product_type = identify_driver(installer_file, | ||||
|                                                     sevenzip=args.sevenzip) | ||||
|             drv_prefix = { | ||||
|                 "100": "quadro_", | ||||
|                 "300": "", | ||||
|                 "301": "nsd_", | ||||
|             } | ||||
|             installer_name = os.path.basename(installer_file).lower() | ||||
|             if 'winserv2008' in installer_name: | ||||
|                 os_prefix = 'ws2012_x64' | ||||
|             elif 'winserv-2016' in installer_name: | ||||
|                 os_prefix = 'ws2016_x64' | ||||
|             elif 'win10' in installer_name: | ||||
|                 os_prefix = 'win10_x64' | ||||
|             elif 'win7' in installer_name: | ||||
|                 os_prefix = 'win7_x64' | ||||
|             else: | ||||
|                 raise UnknownPlatformException("Can't infer platform from filename %s" | ||||
|                                                % (repr(installer_name),)) | ||||
|             driver_name = drv_prefix[product_type] + version | ||||
|             out_dir = os.path.join( | ||||
|                 os.path.dirname( | ||||
|                     os.path.abspath(__file__)), '..', '..', os_prefix, driver_name) | ||||
|             os.makedirs(out_dir, 0o755, True) | ||||
|             out_filename = os.path.join(out_dir, | ||||
|                 os.path.splitext(args.target_name)[0] + PATCH_EXT) | ||||
|             with open(out_filename, 'xb') as out: | ||||
|                 out.write(patch_content) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Snawoot
					Snawoot