mirror of
https://github.com/ksherlock/ample.git
synced 2026-01-22 16:16:02 +00:00
move python code into it's own directory.
This commit is contained in:
82
python/mkmodels.py
Normal file
82
python/mkmodels.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import subprocess
|
||||
|
||||
from plist import to_plist
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
from machines import MACHINES
|
||||
|
||||
import re
|
||||
|
||||
apple1_children = None
|
||||
apple2_children = ["apple2", "apple2p", "apple2jp"]
|
||||
apple3_children = None
|
||||
apple2e_children = ["apple2e", "apple2ees", "apple2euk", "apple2ep", "apple2ee", "apple2eeuk", "apple2eefr"]
|
||||
apple2c_children = ["apple2c", "apple2cp"]
|
||||
apple2gs_children = ["apple2gsr0", "apple2gsr1", "apple2gs"]
|
||||
laser_children = ["laser128", "laser2c", "las128ex", "las128e2"]
|
||||
ii_clones_children = ["ace100", "agat7", "agat9", "albert",
|
||||
"am100", "am64", "basis108", "craft2p",
|
||||
"dodo", "elppa", "hkc8800a", "ivelultr",
|
||||
"maxxi", "microeng", "prav82", "prav8m",
|
||||
"space84", "uniap2en", "uniap2pt", "uniap2ti"]
|
||||
iie_clones_children = ["mprof3", "prav8c", "spectred", "zijini"]
|
||||
cec_children = ["cec2000", "cece", "cecg", "ceci", "cecm"]
|
||||
|
||||
tree = [
|
||||
("Apple I", "apple1", apple1_children),
|
||||
("Apple ][", "apple2", apple2_children),
|
||||
("Apple IIe", "apple2e", apple2e_children),
|
||||
("Apple //c", "apple2c", apple2c_children),
|
||||
("Apple IIgs", "apple2gs", apple2gs_children),
|
||||
("Apple ///", "apple3", apple3_children),
|
||||
("Laser", "laser128", laser_children),
|
||||
("China Education Computer", None, cec_children)
|
||||
("II Clones", None, ii_clones_children),
|
||||
("IIe Clones", None, iie_clones_children),
|
||||
]
|
||||
|
||||
st = subprocess.run(["mame", "-listfull", *MACHINES], check=True, capture_output=True, text=True)
|
||||
# Name: Description:
|
||||
# apple2gs "Apple IIgs (ROM03)"
|
||||
# apple2gsr0 "Apple IIgs (ROM00)"
|
||||
|
||||
names = {}
|
||||
|
||||
t = st.stdout
|
||||
lines = t.split("\n")
|
||||
lines.pop(0)
|
||||
for x in lines:
|
||||
x = x.strip()
|
||||
if x == "": continue
|
||||
m = re.fullmatch(r"^([A-Za-z0-9_]+)\s+\"([^\"]+)\"$", x)
|
||||
if not m:
|
||||
print("hmmm....", x)
|
||||
continue
|
||||
name = m[1]
|
||||
desc = m[2]
|
||||
|
||||
names[name] = desc
|
||||
|
||||
|
||||
def make_children(clist):
|
||||
global names
|
||||
return [
|
||||
{ "description": names[x], "value": x}
|
||||
for x in clist
|
||||
]
|
||||
|
||||
data = []
|
||||
|
||||
for x in tree:
|
||||
desc, value, children = x
|
||||
tmp = { "description": desc }
|
||||
if value: tmp["value"] = value
|
||||
if children: tmp["children"] = make_children(children)
|
||||
|
||||
data.append(tmp)
|
||||
|
||||
path = "../Ample/Resources/models.plist"
|
||||
with open(path, "w") as f:
|
||||
f.write(to_plist(data))
|
||||
|
||||
Reference in New Issue
Block a user