Add service for ScummVM

This commit is contained in:
Mathieu Comandon 2017-05-11 23:05:08 -07:00
parent e99d2a7094
commit d2734a3d5a
3 changed files with 52 additions and 3 deletions

View file

@ -5,8 +5,6 @@ import subprocess
from lutris import settings
from lutris.runners.runner import Runner
SCUMMVM_CONFIG_FILE = os.path.join(os.path.expanduser("~"), ".scummvmrc")
class scummvm(Runner):
description = "Runs various 2D point-and-click adventure games."

View file

@ -1,7 +1,7 @@
from importlib import import_module
from lutris.settings import read_setting
__all__ = ['steam', 'winesteam', 'xdg']
__all__ = ['steam', 'winesteam', 'xdg', 'scummvm']
def import_service(name):

View file

@ -0,0 +1,51 @@
import re
import os
from configparser import ConfigParser
from lutris import pga
from lutris.util.log import logger
from lutris.util.strings import slugify
from lutris.config import make_game_config_id, LutrisConfig
NAME = "ScummVM"
SCUMMVM_CONFIG_FILE = os.path.join(os.path.expanduser("~/.config/scummvm"), "scummvm.ini")
def mark_as_installed(scummvm_id, name, path):
"""Add scummvm from the auto-import"""
logger.info("Setting %s as installed" % name)
slug = slugify(name)
config_id = make_game_config_id(slug)
game_id = pga.add_or_update(
name=name,
runner='scummvm',
slug=slug,
installed=1,
configpath=config_id,
directory=path
)
config = LutrisConfig(
runner_slug='scummvm',
game_config_id=config_id
)
config.raw_game_config.update({
'game_id': scummvm_id,
'path': path
})
config.save()
return game_id
def sync_with_lutris():
if not os.path.exists(SCUMMVM_CONFIG_FILE):
logger.info("No ScummVM config found")
return
config = ConfigParser()
config.read(SCUMMVM_CONFIG_FILE)
config_sections = config.sections()
for section in config_sections:
if section == 'scummvm':
continue
scummvm_id = section
name = re.split(' \(.*\)$', config[section]["description"])[0]
path = config[section]['path']
mark_as_installed(scummvm_id, name, path)