1
0
mirror of https://github.com/lutris/lutris synced 2024-07-05 16:38:42 +00:00
lutris/schema/installer.schema.yml
2024-01-31 11:47:01 -08:00

540 lines
16 KiB
YAML

No one knows what this file does or how to use it
$schema: "http://json-schema.org/draft-07/schema"
$comment: "As per https://github.com/lutris/lutris/blob/bd92a295a77484c2ea1f6ef6140d25057f24965a/docs/installers.rst"
required:
- name
- game_slug
- version
- slug
- runner
- script
description: Lutris install script
type: object
properties:
name:
description: Name of the game, should be surrounded in quotes if containing special characters.
type: string
game_slug:
description: Game identifier on the Lutris website
type: string
version:
description: Name of the installer
type: string
slug:
description: Installer identifier
type: string
require-binaries:
description: Additional binaries
type: string
requires:
description: Mods and add-ons
type: string
extends:
description: Extensions / patches
type: string
install_complete_text:
description: Custom end of install text
type: string
runner:
description: The runner to be used by this game
type: string
enum:
- ags
- atari800
- browser
- citra
- desmume
- dgen
- dolphin
- dosbox
- frotz
- fsuae
- hatari
- jzintv
- libretro
- linux
- mame
- mednafen
- mupen64plus
- o2em
- openmsx
- osmose
- pcsx2
- pcsxr
- ppsspp
- reicast
- rpcs3
- scummvm
- snes9x
- steam
- winesteam
- stella
- vice
- virtualjaguar
- web
- wine
- yuzu
- zdoom
script:
description: Main script
type: object
additionalProperties: true
required:
- game
- installer
patternProperties:
"":
type: object
properties:
game:
type: object
description: Game configuration directives
properties:
exe:
type: string
description: Main game executable
main_file:
type: string
description: Emulator ROM or disk file
args:
type: string
description: Additional command arguments
working_dir:
type: string
description: Working directory to use when executing the executable
launch_configs:
type: array
description: A list of mutiple related executable configurations
additionalItems: false
items:
type: object
required:
- name
- exe
properties:
name:
type: string
description: Identifier to show in the launcher dialog
command:
type: string
description: Full bash command to execute, overriding default game command entirely
exe:
type: string
description: Main game executable, to combine with the command
args:
type: string
description: Additional command arguments
working_dir:
type: string
description: Working directory to use when executing the executable
arch:
type: string
description: The architecture of a Wine prefix
prefix:
type: string
description: Path to the Wine prefix
run_without_steam:
type: boolean
description: Activate the DRM free mode and no not launch Steam when the game runs
steamless_binary:
type: string
description: Path of the game executable if it's able to run without the Steam client
path:
type: string
description: Location of the game files
files:
type: array
description: Fetch required files
items:
anyOf:
- type: string
description: File URL
- type: object
properties:
url:
type: string
description: File URL
filename:
type: string
description: The name of the file's saved copy
referer:
type: string
description: File referer domain
installer:
type: array
description: Installation script
additionalItems: false
items:
additionalProperties: false
type: object
properties:
insert-disc:
type: object
description: "'Insert disc' dialog"
properties:
requires:
description: Required disk
type: string
required:
- requires
move:
type: object
description: Move files and directories
properties:
src:
description: Source file ID or path
type: string
dst:
description: Destination path
type: string
required:
- src
- dst
merge:
type: object
description: Copy and merge directories
properties:
src:
description: Source file ID or path
type: string
dst:
description: Destination path
type: string
required:
- src
- dst
extract:
type: object
description: Copy and merge directories
properties:
file:
description: Source file ID or path
type: string
dst:
description: Destination path
type: string
format:
description: Archive's type
type: string
enum:
- tgz
- tar
- zip
- 7z
- rar
- txz
- bz2
- gzip
- deb
- exe
- gog
required:
- file
- dst
chmodx:
type: string
description: Path to a file to Make executable
execute:
type: object
description: Executes a file
properties:
command:
description: Full bash command to execute
type: string
file:
description: File ID or a path to file
type: string
args:
description: Executable arguments
type: string
terminal:
description: Execute in a new terminal window
type: boolean
exclude_processes:
description: Space-separated list of processes to exclude from being monitored when determining if the execute phase finished
type: string
include_processes:
description: Space-separated list of processes to monitor when determining if the execute phase finished
type: string
disable_runtime:
description: Run a process without Lutris runtime
type: boolean
env:
$ref: "#/definitions/env"
oneOf:
- required:
- file
- args
- required:
- command
write_file:
type: object
description: Write text files
properties:
content:
description: File content to write
type: string
file:
description: Destination file pathpath
type: string
required:
- content
- file
write_config:
type: object
description: Write into an INI type config file
properties:
merge:
description: Truncate the file
type: boolean
file:
description: Destination file pathpath
type: string
section:
description: INI section to write
type: string
key:
description: Property key
type: string
value:
description: Property value
type: string
data:
description: Free form data to write
type: object
oneOf:
- required:
- file
- section
- key
- value
- required:
- file
- data
write_json:
type: object
description: Write into an JSON type file
properties:
merge:
description: Update the file
type: boolean
file:
description: Destination file pathpath
type: string
data:
description: Free form data to write
type: object
required:
- file
- data
task:
type: object
description: Run a task provided by the runner
properties:
name:
type: string
enum:
- create_prefix
- wineexec
- winetricks
- eject_disk
- set_regedit
- delete_registry_key
- set_regedit_file
- winekill
- dosexec
prefix:
type: string
description: The prefix path
arch:
type: string
description: Architecture of the prefix
overrides:
type: object
description: WINE DLL overrides
additionalProperties: false
patternProperties:
"":
type: string
install_gecko:
type: boolean
description: Enable installing Gecko
install_mono:
type: boolean
description: Enable installing Mono
executable:
type: string
description: Wine executable id or path
args:
type: string
description: Optional command arguments
blocking:
type: boolean
description: Suppress threading
description:
type: string
description: A message be shown to the user during the execution of the task
working_dir:
type: string
description: Working directory
exclude_processes:
type: string
description: Space-separated list of processes to exclude from being monitored when determining if the execute phase finished
include_processes:
type: string
description: Space-separated list of processes to monitor when determining if the execute phase finished
env:
$ref: "#/definitions/env"
app:
type: string
description: Space-separated list of winetricks apps to run
silent:
type: boolean
description: Run in silent mode
key:
type: string
description: Registry key
value:
type: string
description: Registry value
type:
type: string
description: Registry value type
filename:
type: string
description: Registry file
config_file:
type: string
description: File id or path to .conf file
exit:
type: boolean
description: Exit DOSBox when the executable is terminated
input_menu:
type: object
description: Display a drop-down menu with options
properties:
description:
type: string
description: Dropdown label
id:
type: string
description: $INPUT_<id> reference key
options:
type: array
description: "Indented list of `value: label` lines to show"
items:
anyOf:
- type: string
preselect:
type: string
description: Default selected value
required:
- description
- options
oneOf:
- required: [ insert-disk ]
- required: [ move ]
- required: [ merge ]
- required: [ extract ]
- required: [ chmodx ]
- required: [ execute ]
- required: [ write_file ]
- required: [ write_config ]
- required: [ write_json ]
- required: [ task ]
- required: [ input_menu ]
system:
type: object
description: System configuration directives
properties:
env:
$ref: "#/definitions/env"
terminal:
type: boolean
description: Run the game in a terminal if the game is a text based one
single_cpu:
type: boolean
description: Run the game on a single CPU core
pulse_latency:
type: boolean
description: Set PulseAudio latency to 60 msecs
use_us_layout:
type: boolean
description: Change the keyboard layout to a standard US one while the game is running
wine:
$ref: "#/definitions/wine-runner"
definitions:
env:
description: Environment variables
type: object
patternProperties:
"":
type: string
wine-runner:
type: object
description: Wine runner configuration directives
properties:
version:
type: string
description: WINE version override
Desktop:
type: boolean
description: Run the game in a Wine virtual desktop
WineDesktop:
type: string
description: The resolution of the Wine virtual desktop
examples: [ "1024x768" ]
dxvk:
type: boolean
description: Enable DXVK
esync:
type: boolean
description: Enable ESync
overrides:
type: array
description: Overrides for Wine DLLs
additionalItems: false
items:
type: object