extract-installer
Tool
scripts/extract-installer.sh(script, Scripts). Get a game's files out of the installer or package it came in, without running it.
Run it as scripts/extract-installer.sh. Source on GitHub.
Its own help
This is the help text in the tool itself, as ./gameframe tool extract-installer prints it.
text
Get a game's files out of the installer or package it came in, without running it.
scripts/extract-installer.sh INSTALLER OUT_DIR detect the kind, then extract into OUT_DIR
scripts/extract-installer.sh --detect INSTALLER only say what kind it is and which tool reads it
Kinds and the tool used (install the tool with scripts/setup.sh --install):
Inno Setup .exe (GOG and many others; GOG's extra .bin parts next to it are read too) innoextract
NSIS .exe (Nullsoft) 7z
InstallShield cabinets (data1.cab ...) unshield, else 7z
Windows Installer .msi 7z
.zip .7z .rar .cab, self-extracting archives 7z (or unzip for .zip)
GOG Linux .sh (MojoSetup: a zip appended to a script) unzip
macOS .dmg hdiutil (mounted read-only, copied, detached)
macOS .pkg pkgutil --expand-full
CD images: .cue with .bin, .iso, raw .bin tools/disc/discinfo.py --extract (and --audio
for CD audio tracks; it also lists the tracks)
macOS .app copied as it is; a tiny app is often only a web
installer (GOG Galaxy's), with no game inside
It never runs the installer. Extract into an ignored folder (target/), never into git.Named by
Skills: re-inventory.