92d8b4c959
* 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.
85 lines
2.2 KiB
Python
85 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()
|