From 0f9e73841e5841224b8f1f63098baa649090df4e Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Fri, 17 Dec 2021 19:59:05 +0100 Subject: [PATCH] gnu: renpy: Move renpy command to aux-files. * gnu/packages/aux-files/renpy/renpy.in: New file. * gnu/packages/game-development.scm (renpy)[install]: Use renpy.in with substitute*. * Makefile.am (AUX_FILES): Add it here. --- Makefile.am | 1 + gnu/packages/aux-files/renpy/renpy.in | 48 +++++++++++++++++++ gnu/packages/game-development.scm | 68 ++++----------------------- 3 files changed, 57 insertions(+), 60 deletions(-) create mode 100644 gnu/packages/aux-files/renpy/renpy.in diff --git a/Makefile.am b/Makefile.am index d6aabac261..077586eda7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -405,6 +405,7 @@ AUX_FILES = \ gnu/packages/aux-files/pack-audit.c \ gnu/packages/aux-files/python/sanity-check.py \ gnu/packages/aux-files/python/sitecustomize.py \ + gnu/packages/aux-files/renpy/renpy.in \ gnu/packages/aux-files/run-in-namespace.c # Templates, examples. diff --git a/gnu/packages/aux-files/renpy/renpy.in b/gnu/packages/aux-files/renpy/renpy.in new file mode 100644 index 0000000000..914a735fa4 --- /dev/null +++ b/gnu/packages/aux-files/renpy/renpy.in @@ -0,0 +1,48 @@ +#! @PYTHON@ +# -*- mode: python -*- + +from __future__ import print_function + +import os +import sys +import warnings + +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" + + return os.path.join(os.path.expanduser("~/.renpy"), save_directory) + +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() diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 43c604567d..5bd8615649 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1448,70 +1448,17 @@ (define-public renpy ;; `-- Super Awesome Game.sh (let* ((out (assoc-ref outputs "out")) (bin/renpy (string-append out "/bin/renpy"))) - (mkdir-p (string-append out "/bin")) (copy-recursively "renpy/common" (string-append out "/share/renpy/common")) (copy-recursively "gui" (string-append out "/share/renpy/gui")) - (call-with-output-file bin/renpy - (lambda (port) - (format port "#!~a/bin/python2~%" - (assoc-ref inputs "python2")) - (format port " -from __future__ import print_function - -import os -import sys -import warnings - -def path_to_common(renpy_base): - return renpy_base + \"/common\" - -def path_to_saves(gamedir, save_directory=None): - import renpy # @UnresolvedImport - - 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\" - - return os.path.expanduser(\"~~/.renpy/\" + save_directory) - -def path_to_renpy_base(): - return \"~a\" - -def main(): - renpy_base = path_to_renpy_base() - 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 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() -" - (string-append out "/share/renpy")))) - (chmod bin/renpy #o755) - #t))) + (mkdir-p (string-append out "/bin")) + (copy-file (assoc-ref inputs "renpy.in") bin/renpy) + (substitute* bin/renpy + (("@PYTHON@") (search-input-file inputs "bin/python2")) + (("@RENPY_BASE@") (string-append out "/share/renpy"))) + (chmod bin/renpy #o755)))) (add-after 'install 'install-games (lambda* (#:key outputs #:allow-other-keys) @@ -1565,7 +1512,8 @@ (define* (install-renpy-game #:key output game name (renpy renpy) inputs)))))))) #t)))))) (inputs - `(("python2-renpy" ,python2-renpy) + `(("renpy.in" ,(search-auxiliary-file "renpy/renpy.in")) + ("python2-renpy" ,python2-renpy) ("python2-tkinter" ,python-2 "tk") ("python2" ,python-2) ; for ‘fix-commands’ and ‘wrap’ ("xdg-utils" ,xdg-utils)))