1
0
Fork 0
mirror of https://github.com/platomav/BIOSUtilities.git synced 2025-05-17 16:45:03 -04:00
BIOSUtilities/main.py
Plato Mavropoulos eda154b0f2 BIOSUtilities v24.10.06
24.10.06

Changed BIOSUtility.parse_format() to return a boolean
Changed 7-Zip and EFI decompressors to return booleans
Apple EFI Package Extractor support for InstallAssistant
Apple EFI Image Identifier support for Apple ROM Version
Added Apple EFI Image Identifier class instance attributes
Improved flow of non-PATH external executable dependencies
Fixed crash when attempting to clear read-only attribute
Fixed incompatibility with Python versions prior to 3.12
Performance improvements when initializing BIOSUtilities
Improved argument naming and definitions of "main" script
Improved the README with new "main" and Apple EFI changes
2024-10-07 01:24:12 +03:00

63 lines
2.8 KiB
Python

#!/usr/bin/env python3 -B
# coding=utf-8
"""
Copyright (C) 2018-2024 Plato Mavropoulos
"""
from argparse import ArgumentParser, Namespace
from pathlib import Path
from biosutilities.ami_pfat_extract import AmiPfatExtract
from biosutilities.ami_ucp_extract import AmiUcpExtract
from biosutilities.apple_efi_id import AppleEfiIdentify
from biosutilities.apple_efi_im4p import AppleEfiIm4pSplit
from biosutilities.apple_efi_pbzx import AppleEfiPbzxExtract
from biosutilities.apple_efi_pkg import AppleEfiPkgExtract
from biosutilities.award_bios_extract import AwardBiosExtract
from biosutilities.dell_pfs_extract import DellPfsExtract
from biosutilities.fujitsu_sfx_extract import FujitsuSfxExtract
from biosutilities.fujitsu_upc_extract import FujitsuUpcExtract
from biosutilities.insyde_ifd_extract import InsydeIfdExtract
from biosutilities.panasonic_bios_extract import PanasonicBiosExtract
from biosutilities.phoenix_tdk_extract import PhoenixTdkExtract
from biosutilities.portwell_efi_extract import PortwellEfiExtract
from biosutilities.toshiba_com_extract import ToshibaComExtract
from biosutilities.vaio_package_extract import VaioPackageExtract
if __name__ == '__main__':
main_argparser: ArgumentParser = ArgumentParser(allow_abbrev=False)
main_argparser.add_argument('paths', nargs='+')
main_argparser.add_argument('-e', '--auto-exit', help='do not pause on exit', action='store_true')
main_argparser.add_argument('-o', '--output-dir', help='extraction directory')
main_arguments: Namespace = main_argparser.parse_args()
if main_arguments.output_dir:
output_folder: Path = Path(main_arguments.output_dir)
else:
output_folder = Path(main_arguments.paths[0]).parent
util_arguments: list[str] = [*main_arguments.paths, '-e', '-o', str(output_folder.absolute())]
AmiUcpExtract(arguments=util_arguments).run_utility()
AmiPfatExtract(arguments=util_arguments).run_utility()
InsydeIfdExtract(arguments=util_arguments).run_utility()
DellPfsExtract(arguments=util_arguments).run_utility()
PhoenixTdkExtract(arguments=util_arguments).run_utility()
PanasonicBiosExtract(arguments=util_arguments).run_utility()
VaioPackageExtract(arguments=util_arguments).run_utility()
PortwellEfiExtract(arguments=util_arguments).run_utility()
ToshibaComExtract(arguments=util_arguments).run_utility()
FujitsuSfxExtract(arguments=util_arguments).run_utility()
FujitsuUpcExtract(arguments=util_arguments).run_utility()
AwardBiosExtract(arguments=util_arguments).run_utility()
AppleEfiPkgExtract(arguments=util_arguments).run_utility()
AppleEfiPbzxExtract(arguments=util_arguments).run_utility()
AppleEfiIm4pSplit(arguments=util_arguments).run_utility()
AppleEfiIdentify(arguments=util_arguments).run_utility()
if not main_arguments.auto_exit:
input('Press any key to exit...')