ap: allow batch operation against multiple package files

This commit is contained in:
Vladislav Yarmak 2019-09-04 18:20:51 +03:00
parent ed2642e83f
commit cd93eb85e2

View File

@ -22,7 +22,8 @@ def parse_args():
description="Generates .1337 patch for Nvidia drivers for Windows", description="Generates .1337 patch for Nvidia drivers for Windows",
formatter_class=argparse.ArgumentDefaultsHelpFormatter) formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("installer_file", parser.add_argument("installer_file",
help="location of installer executable") nargs="+",
help="location of installer executable(s)")
parser.add_argument("-7", "--7zip", parser.add_argument("-7", "--7zip",
default="7z", default="7z",
dest="sevenzip", dest="sevenzip",
@ -154,7 +155,8 @@ def main():
replacement = unhexlify(args.replacement) replacement = unhexlify(args.replacement)
assert len(search) == len(replacement), "len() of search and replacement"\ assert len(search) == len(replacement), "len() of search and replacement"\
" is not equal" " is not equal"
patch = make_patch(args.installer_file, for installer_file in args.installer_file:
patch = make_patch(installer_file,
arch_tgt=args.target, arch_tgt=args.target,
search=search, search=search,
replacement=replacement, replacement=replacement,
@ -164,14 +166,14 @@ def main():
with open(sys.stdout.fileno(), mode='wb', closefd=False) as out: with open(sys.stdout.fileno(), mode='wb', closefd=False) as out:
out.write(patch_content) out.write(patch_content)
else: else:
version, product_type = identify_driver(args.installer_file, version, product_type = identify_driver(installer_file,
sevenzip=args.sevenzip) sevenzip=args.sevenzip)
drv_prefix = { drv_prefix = {
"100": "quadro_", "100": "quadro_",
"300": "", "300": "",
"301": "nsd_", "301": "nsd_",
} }
installer_name = os.path.basename(args.installer_file).lower() installer_name = os.path.basename(installer_file).lower()
if 'winserv2008' in installer_name: if 'winserv2008' in installer_name:
os_prefix = 'ws2012_x64' os_prefix = 'ws2012_x64'
elif 'winserv-2016' in installer_name: elif 'winserv-2016' in installer_name: