gnu: Add wrapper for Freedink.
* gnu/packages/games.scm (freedink-engine, freedink-data): Make private. (freedink): New variable.
This commit is contained in:
		
							parent
							
								
									bb3b71ce87
								
							
						
					
					
						commit
						a6b55314b1
					
				
					 1 changed files with 33 additions and 3 deletions
				
			
		|  | @ -4,6 +4,7 @@ | |||
| ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> | ||||
| ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> | ||||
| ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> | ||||
| ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -45,7 +46,9 @@ | |||
|   #:use-module (gnu packages texinfo) | ||||
|   #:use-module (gnu packages check) | ||||
|   #:use-module (gnu packages fontutils) | ||||
|   #:use-module (guix build-system gnu)) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system trivial)) | ||||
| 
 | ||||
| (define-public gnubg | ||||
|   (package | ||||
|  | @ -289,7 +292,7 @@ against the computer in a game of chess, either through the default terminal | |||
| interface or via an external visual interface such as GNU XBoard.") | ||||
|     (license gpl3+))) | ||||
| 
 | ||||
| (define-public freedink-engine | ||||
| (define freedink-engine | ||||
|   (package | ||||
|     (name "freedink-engine") | ||||
|     (version "108.4") | ||||
|  | @ -320,7 +323,7 @@ game data files but it also supports user-produced game mods or \"D-Mods\". | |||
| To that extent, it also includes a front-end for managing all of your D-Mods.") | ||||
|     (license gpl3+))) | ||||
| 
 | ||||
| (define-public freedink-data | ||||
| (define freedink-data | ||||
|   (package | ||||
|     (name "freedink-data") | ||||
|     (version "1.08.20140901") | ||||
|  | @ -343,6 +346,33 @@ To that extent, it also includes a front-end for managing all of your D-Mods.") | |||
| 
 | ||||
| ;; TODO: Add freedink-dfarc when there's a wxWidgets package. | ||||
| 
 | ||||
| (define-public freedink | ||||
|   ;; This is a wrapper that tells the engine where to find the data. | ||||
|   (package (inherit freedink-engine) | ||||
|     (name "freedink") | ||||
|     (build-system trivial-build-system) | ||||
|     (arguments | ||||
|      '(#:builder (begin | ||||
|                    (use-modules (guix build utils)) | ||||
| 
 | ||||
|                    (let* ((output     (assoc-ref %outputs "out")) | ||||
|                           (bin        (string-append output "/bin")) | ||||
|                           (executable (string-append bin "/freedink"))) | ||||
|                      (mkdir-p bin) | ||||
|                      (call-with-output-file executable | ||||
|                        (lambda (port) | ||||
|                          (format port "#!~a/bin/sh | ||||
| exec ~a/bin/freedink -refdir ~a/share/dink\n" | ||||
|                                  (assoc-ref %build-inputs "bash") | ||||
|                                  (assoc-ref %build-inputs "engine") | ||||
|                                  (assoc-ref %build-inputs "data")) | ||||
|                          (chmod port #o777))))) | ||||
|        #:modules ((guix build utils)))) | ||||
|     (inputs `(("engine" ,freedink-engine) | ||||
|               ("data" ,freedink-data) | ||||
|               ("bash" ,bash))) | ||||
|     (native-inputs '()))) | ||||
| 
 | ||||
| (define-public xboard | ||||
|   (package | ||||
|     (name "xboard") | ||||
|  |  | |||
		Reference in a new issue