[game-data-packager] 01/01: doom2-masterlevels: port it to Fedora

Alexandre Detiste detiste-guest at moszumanska.debian.org
Tue Nov 3 21:48:24 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit 123bcaff4d05101971837a293113a9ad376805a1
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Tue Nov 3 22:46:59 2015 +0100

    doom2-masterlevels: port it to Fedora
    
    there's an alternatives system with symlinks in /etc/alternatives,
    but it's not used for doom engines
---
 runtime/doom2-masterlevels.py | 42 ++++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

diff --git a/runtime/doom2-masterlevels.py b/runtime/doom2-masterlevels.py
index f92fe57..b5dca40 100755
--- a/runtime/doom2-masterlevels.py
+++ b/runtime/doom2-masterlevels.py
@@ -32,6 +32,11 @@ def which(exe):
 
     return None
 
+if os.path.isdir('/usr/share/doom'):
+    DIR = '/usr/share/doom'
+else:
+    DIR = '/usr/share/games/doom'
+
 requirements='''
 --------------------------------------------------------
 
@@ -193,21 +198,35 @@ class Launcher:
         radiobuttonDefault.connect('toggled', self.select_engine)
         radiogrid.attach(radiobuttonDefault, 0, 0, 1, 1)
 
+        default = None
+        alternatives = []
         if os.path.islink('/etc/alternatives/doom'):
+            # on Debian
             default = os.readlink('/etc/alternatives/doom')
             if default == '/usr/games/doomsday-compat':
                 default = '/usr/games/doomsday'
+
+            proc = subprocess.check_output(['update-alternatives', '--list', 'doom'],
+                                             universal_newlines=True)
+            for alternative in proc.splitlines():
+                if alternative == '/usr/games/doomsday-compat':
+                    alternative = '/usr/games/doomsday'
+                if alternative != default:
+                    alternatives.append(alternative)
+        else:
+            # not on Debian
+            for alternative in ('prboom-plus', 'prboom', 'chocolate-doom'):
+                if which(alternative):
+                    if not default:
+                        default = alternative
+                    else:
+                        alternatives.append(alternative)
+
+        if default:
             radiobuttonDefault.set_label("%s (default)" % default)
             self.select_engine(radiobuttonDefault)
             i = 1
-            proc = subprocess.Popen(['update-alternatives', '--list', 'doom'],
-                                stdout=subprocess.PIPE, universal_newlines=True)
-            for alternative in proc.stdout:
-                alternative = alternative.strip()
-                if alternative == '/usr/games/doomsday-compat':
-                    alternative = '/usr/games/doomsday'
-                if alternative == default:
-                   continue
+            for alternative in alternatives:
                 radiobutton = Gtk.RadioButton(group=radiobuttonDefault, label=alternative)
                 radiobutton.connect('toggled', self.select_engine)
                 i += 1
@@ -262,10 +281,13 @@ class Launcher:
         if self.engine == ['/usr/games/doomsday']:
             self.engine.append('-game')
             self.engine.append('doom2')
+        if self.engine == ['chocolate-doom'] and DIR == '/usr/share/doom':
+            self.engine.append('-iwad')
+            self.engine.append('/usr/share/doom/doom2.wad')
 
     def run_game(self, event):
         subprocess.call(self.engine +
-            ['-file', '/usr/share/games/doom/%s.wad' % self.game,
+            ['-file', '%s/%s.wad' % (DIR, self.game),
             '-warp', '%d' % self.warp,
             '-skill', '%d' % self.difficulty])
 
@@ -278,7 +300,7 @@ class Launcher:
             exit(message)
         for level in levels.keys():
             level = os.path.splitext(level)[0]
-            fullpath = '/usr/share/games/doom/%s.wad' % level
+            fullpath = DIR + '/%s.wad' % level
             if not os.path.isfile(fullpath):
                 print('\n')
                 message = fullpath + " is missing !\n" + requirements

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list