mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-26 19:32:17 -05:00
ba5d5c25d1
- fixes exiting with Ctrl+C on linux - chooseROM returns Z64Rom object in addition to speed - adds simple verbosity for inspecting roms
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
import os, sys, glob
|
|
|
|
from rom_info import Z64Rom
|
|
|
|
def chooseROM(verbose=False, non_interactive=False):
|
|
roms = []
|
|
|
|
for file in glob.glob("*.z64"):
|
|
rom = Z64Rom(file)
|
|
if rom.is_valid:
|
|
roms.append(rom)
|
|
|
|
if not (roms):
|
|
print("Error: No roms located, place one in the OTRExporter directory", file=os.sys.stderr)
|
|
sys.exit(1)
|
|
|
|
if (len(roms) == 1):
|
|
return roms
|
|
|
|
if non_interactive:
|
|
romsToExtract = []
|
|
foundMq = False
|
|
foundOot = False
|
|
for rom in roms:
|
|
if rom.isMq and not foundMq:
|
|
romsToExtract.append(rom)
|
|
foundMq = True
|
|
elif not rom.isMq and not foundOot:
|
|
romsToExtract.append(rom)
|
|
foundOot = True
|
|
return romsToExtract
|
|
|
|
print(f"{len(roms)} roms found, please select one by pressing 1-{len(roms)}")
|
|
print()
|
|
|
|
for i in range(len(roms)):
|
|
print(f"[{i+1:>2d}] {roms[i].file_path}")
|
|
if verbose:
|
|
print(f" Checksum: {roms[i].checksum.value}, Version XML: {roms[i].version.xml_ver}")
|
|
print()
|
|
|
|
while(1):
|
|
try:
|
|
selection = int(input())
|
|
except KeyboardInterrupt:
|
|
sys.exit(1)
|
|
except:
|
|
print("Bad input. Try again with the number keys.")
|
|
continue
|
|
|
|
if (selection < 1 or selection > len(roms)):
|
|
print("Bad input. Try again.")
|
|
continue
|
|
|
|
else: break
|
|
|
|
return [ roms[selection - 1] ]
|