mirror of
https://github.com/lutris/lutris
synced 2024-10-06 07:50:16 +00:00
Check if a game is instaled by installer slug instead of yaml filename
This commit is contained in:
parent
ce3e8d257e
commit
f061226f3c
12
bin/lutris
12
bin/lutris
|
@ -49,7 +49,7 @@ from lutris.util.log import logger
|
|||
from lutris.installer import InstallerDialog
|
||||
from lutris.config import check_config # , register_handler
|
||||
from lutris.game import Game
|
||||
from lutris.pga import get_games
|
||||
from lutris import pga
|
||||
from lutris.gui.lutriswindow import LutrisWindow
|
||||
from lutris.settings import VERSION
|
||||
|
||||
|
@ -84,7 +84,7 @@ if options.debug:
|
|||
logger.setLevel(logging.DEBUG)
|
||||
|
||||
if options.list_games:
|
||||
for game in get_games():
|
||||
for game in pga.get_games():
|
||||
print u"{:<40} | {:<40} | {:<15} | {:<64}".format(
|
||||
game['name'][:40],
|
||||
game['slug'][:40],
|
||||
|
@ -115,9 +115,11 @@ for arg in args:
|
|||
|
||||
if game_slug or options.installer_file:
|
||||
file_path = os.path.join(GAME_CONFIG_PATH, game_slug + CONFIG_EXTENSION)
|
||||
if os.path.exists(file_path) and not options.reinstall:
|
||||
logger.info("Launching %s", game_slug)
|
||||
lutris_game = Game(game_slug)
|
||||
db_game = pga.get_game_by_slug(game_slug) \
|
||||
or pga.get_game_by_slug(game_slug, field='installer_slug')
|
||||
if db_game and db_game['installed'] and not options.reinstall:
|
||||
logger.info("Launching %s", db_game['name'])
|
||||
lutris_game = Game(db_game['slug'])
|
||||
lutris_game.play()
|
||||
else:
|
||||
logger.info("Installing %s", game_slug)
|
||||
|
|
|
@ -142,8 +142,10 @@ def get_games(name_filter=None, filter_installed=False):
|
|||
return game_list
|
||||
|
||||
|
||||
def get_game_by_slug(slug):
|
||||
game_result = sql.db_select(PGA_DB, "games", condition=('slug', slug))
|
||||
def get_game_by_slug(slug, field='slug'):
|
||||
if field not in ('slug', 'installer_slug'):
|
||||
raise ValueError("Invalid field name: %s", field)
|
||||
game_result = sql.db_select(PGA_DB, "games", condition=(field, slug))
|
||||
if game_result:
|
||||
return game_result[0]
|
||||
return {}
|
||||
|
|
Loading…
Reference in a new issue