guix/gnu/packages/aux-files/renpy/renpy.in
Liliana Marie Prikler 92d8b4c959
gnu: renpy: Update to 8.2.0.
* gnu/packages/aux-files/renpy/renpy.in (path-to-saves): Honour
RENPY_PATH_TO_SAVES.
(path_to_logdir, predefined_searchpath): New procedures.
* gnu/packages/game-development.scm (python-renpy): Update to 8.2.0.
2024-02-25 09:32:49 +01:00

86 lines
2.2 KiB
Python

#! @PYTHON@
# -*- mode: python -*-
import glob
import os
import sys
import warnings
def __renpy_files(directory):
for pattern in ['*.rpa', '*.rpyc', '*.rpy']:
for file in glob.iglob(pattern, root_dir=directory):
yield file
def path_to_gamedir(basedir, name):
candidates = [name, 'game', 'data', 'launcher/game']
if __renpy_files(basedir):
return basedir
for candidate in candidates:
gamedir = os.path.join(basedir, candidate)
if __renpy_files(gamedir):
return gamedir
return basedir
def path_to_common(renpy_base):
return renpy_base + "/common"
def path_to_saves(gamedir, save_directory=None):
import renpy
if save_directory is None:
save_directory = renpy.config.save_directory
save_directory = renpy.exports.fsencode(save_directory)
if not save_directory:
return gamedir + "/saves"
prefix = os.environ.get("RENPY_PATH_TO_SAVES",
os.path.expanduser("~/.renpy"))
return os.path.join(prefix, save_directory)
def path_to_logdir(basedir):
return basedir
def predefined_searchpath(commondir):
import renpy
# The default gamedir, in private.
searchpath = [ renpy.config.gamedir ]
if env_searchpath := os.environ.get("RENPY_SEARCHPATH"):
searchpath.extend(env_searchpath.split("::"))
if commondir and os.path.isdir(commondir):
searchpath.append(commondir)
return searchpath
def main():
try:
import renpy.bootstrap
import renpy.arguments
except ImportError:
print("""Could not import renpy.bootstrap.
Please ensure you decompressed Ren'py correctly, preserving the directory
structure.""", file=sys.stderr)
raise
args = renpy.arguments.bootstrap()
if not args.basedir:
print("""This Ren'py requires a basedir to launch.
The basedir is the directory, in which .rpy source files or compiled .rpyc files
live -- usually the 'game' subdirectory of a game packaged by Ren'py.
If you want the Ren'py launcher, use \"renpy-launcher\" instead.""",
file=sys.stderr)
sys.exit()
renpy.bootstrap.bootstrap("@RENPY_BASE@")
if __name__ == "__main__":
main()