feat: read RetroPie launchers from scriptmodules

The scraper walks each package's functions the way RetroPie runs them in one shell (assignments, arrays, for loops, brace expansion, $md_id, calls into other packages) and records every link, copy, move and setting that names $biosdir, the addEmulator flags (sdltrs -romfile3), the BIOS read outside $biosdir (basilisk --rom, gngeopi -B) and the launch scripts that exit without their file (fs-uae kick13.rom, reicast dc_boot.bin).

Each package also gets a package record with its rp_module_repo and the systems it registers, which maps a package to the build it compiles. The schema gains package, repo, systems and the moves and package kinds. platforms/retropie.yml is regenerated at 46128cd2: only the launchers section is new.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 21:13:09 +02:00
1 parent 1c23d4daaa
commit 15ffeddfe3
7 files changed
+3923 -6

No files matched your search

+19 -2
View File
@@ -153,9 +153,26 @@
"passes_path",
"links",
"copies",
"scans_dir"
"moves",
"scans_dir",
"package"
],
"description": "names_searched: tries the names in order, first found wins. fixed_name: writes or opens one path per name. core_option: sets a core option whose value names the file. passes_path: hands over a directory. links, copies: links or copies a file to where the emulator reads it. scans_dir: the emulator picks from a directory"
"description": "names_searched: tries the names in order, first found wins. fixed_name: writes or opens one path per name. core_option: sets a core option whose value names the file. passes_path: hands over a directory. links, copies: links or copies a file to where the emulator reads it. moves: moves a file the user left in one folder to the folder the launcher links from. scans_dir: the emulator picks from a directory. package: names no file, records what a package builds (`repo`) and the systems it registers (`systems`)"
},
"package": {
"type": "string",
"description": "The platform package whose script this record comes from, when the platform installs emulators as packages"
},
"repo": {
"type": "string",
"description": "What the package fetches and builds, as its script declares it: method, URL, then branch or commit"
},
"systems": {
"type": "array",
"items": {
"type": "string"
},
"description": "Systems the package registers, under the platform's own names, in the order the script adds them"
},
"slot": {
"type": "string",