[game-data-packager] 01/01: lintian: deduplicate code & move it to util_deb.py

Alexandre Detiste detiste-guest at moszumanska.debian.org
Tue Nov 3 07:47:08 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 b0c2799f1c6dff96ff8ed7a18670e2faac571c0e
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Tue Nov 3 08:46:27 2015 +0100

    lintian: deduplicate code & move it to util_deb.py
---
 game_data_packager/build.py                   | 10 ++--------
 game_data_packager/games/doom_common.py       | 25 ++++++++-----------------
 game_data_packager/games/ecwolf_common.py     | 15 ++-------------
 game_data_packager/games/residualvm_common.py | 14 ++------------
 game_data_packager/games/scummvm_common.py    | 13 +++----------
 game_data_packager/games/z_code.py            | 16 ++++++----------
 game_data_packager/util.py                    |  9 ++++++++-
 game_data_packager/util_deb.py                | 19 ++++++++++++++++++-
 8 files changed, 49 insertions(+), 72 deletions(-)

diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index 8612727..8147a5f 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -49,6 +49,7 @@ from .util import (AGENT,
         human_size,
         install_packages,
         lang_score,
+        lintian_license,
         mkdir_p,
         rm_rf,
         recursive_utime,
@@ -1333,15 +1334,8 @@ class PackagingTask(object):
                      continue
                  license_file = self.game.files[f].install_as
                  licenses.add("/usr/share/doc/%s/%s" % (package.name, license_file))
-                 if FORMAT != 'deb':
-                     continue
                  if os.path.splitext(license_file)[0].lower() == 'license':
-                     lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-                     mkdir_p(lintiandir)
-                     with open(os.path.join(lintiandir, package.name),
-                              'a', encoding='utf-8') as l:
-                         l.write('%s: extra-license-file usr/share/doc/%s/%s\n'
-                                 % (package.name, package.name, license_file))
+                     lintian_license(destdir, package.name, license_file)
 
             if package.component == 'local':
                 o.write('It contains proprietary game data '
diff --git a/game_data_packager/games/doom_common.py b/game_data_packager/games/doom_common.py
index 321780a..6cdb61f 100644
--- a/game_data_packager/games/doom_common.py
+++ b/game_data_packager/games/doom_common.py
@@ -24,8 +24,8 @@ import subprocess
 from .. import GameData
 from ..build import (PackagingTask)
 from ..paths import DATADIR
-from ..util import (copy_with_substitutions, mkdir_p)
-from ..version import (FORMAT)
+from ..util import (copy_with_substitutions, mkdir_p, lintian_desktop)
+from ..version import FORMAT
 
 logger = logging.getLogger('game-data-packager.games.doom-common')
 
@@ -166,26 +166,17 @@ class DoomTask(PackagingTask):
                       'w', encoding='utf-8') as output:
                  desktop.write(output, space_around_delimiters=False)
 
-            if FORMAT != 'deb':
-                return
+            lintian_desktop(destdir, package.name, package.program)
 
-            lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-            mkdir_p(lintiandir)
-
-            with open(os.path.join(lintiandir, package.name),
-                      'a', encoding='utf-8') as o:
-                 o.write('%s: desktop-command-not-in-package '
-                         'usr/share/applications/%s.desktop %s\n'
-                         % (package.name, desktop_file, package.program))
-
-            debdir = os.path.join(destdir, 'DEBIAN')
-            mkdir_p(debdir)
-            copy_with_substitutions(
+            if FORMAT == 'deb':
+                debdir = os.path.join(destdir, 'DEBIAN')
+                mkdir_p(debdir)
+                copy_with_substitutions(
                     open(os.path.join(DATADIR, 'doom-common.preinst.in'),
                         encoding='utf-8'),
                     open(os.path.join(debdir, 'preinst'), 'w',
                         encoding='utf-8'),
                     IWAD=main_wad)
-            os.chmod(os.path.join(debdir, 'preinst'), 0o755)
+                os.chmod(os.path.join(debdir, 'preinst'), 0o755)
 
 GAME_DATA_SUBCLASS = DoomGameData
diff --git a/game_data_packager/games/ecwolf_common.py b/game_data_packager/games/ecwolf_common.py
index 2ccc42c..8e374ab 100644
--- a/game_data_packager/games/ecwolf_common.py
+++ b/game_data_packager/games/ecwolf_common.py
@@ -23,8 +23,7 @@ import subprocess
 from .. import GameData
 from ..build import (PackagingTask)
 from ..paths import DATADIR
-from ..util import mkdir_p
-from ..version import (FORMAT)
+from ..util import (mkdir_p, lintian_desktop)
 
 logger = logging.getLogger('game-data-packager.games.ecwolf-common')
 
@@ -101,16 +100,6 @@ class EcwolfTask(PackagingTask):
                   'w', encoding='utf-8') as output:
              desktop.write(output, space_around_delimiters=False)
 
-        if FORMAT != 'deb':
-            return
-
-        lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-        mkdir_p(lintiandir)
-
-        with open(os.path.join(lintiandir, package.name),
-                  'a', encoding='utf-8') as o:
-             o.write('%s: desktop-command-not-in-package '
-                     'usr/share/applications/%s.desktop ecwolf\n'
-                     % (package.name, package.name))
+        lintian_desktop(destdir, package.name, 'ecwolf')
 
 GAME_DATA_SUBCLASS = EcwolfGameData
diff --git a/game_data_packager/games/residualvm_common.py b/game_data_packager/games/residualvm_common.py
index 18a6040..2fdea18 100644
--- a/game_data_packager/games/residualvm_common.py
+++ b/game_data_packager/games/residualvm_common.py
@@ -24,8 +24,7 @@ import subprocess
 from .. import GameData
 from ..build import (PackagingTask)
 from ..paths import DATADIR
-from ..util import mkdir_p
-from ..version import (FORMAT)
+from ..util import (mkdir_p, lintian_desktop)
 
 logger = logging.getLogger('game-data-packager.games.residualvm-common')
 
@@ -115,15 +114,6 @@ class ResidualvmTask(PackagingTask):
                   'w', encoding='utf-8') as output:
              desktop.write(output, space_around_delimiters=False)
 
-        if FORMAT != 'deb':
-            return
-
-        lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-        mkdir_p(lintiandir)
-        with open(os.path.join(lintiandir, package.name),
-                  'a', encoding='utf-8') as o:
-             o.write('%s: desktop-command-not-in-package '
-                     'usr/share/applications/%s.desktop residualvm\n'
-                     % (package.name, package.name))
+        lintian_desktop(destdir, package.name, 'residualvm')
 
 GAME_DATA_SUBCLASS = ResidualvmGameData
diff --git a/game_data_packager/games/scummvm_common.py b/game_data_packager/games/scummvm_common.py
index 5479c2c..5b51dda 100644
--- a/game_data_packager/games/scummvm_common.py
+++ b/game_data_packager/games/scummvm_common.py
@@ -24,8 +24,8 @@ import subprocess
 from .. import GameData
 from ..build import (PackagingTask)
 from ..paths import DATADIR
-from ..util import mkdir_p
-from ..version import (FORMAT, BINDIR)
+from ..util import (mkdir_p, lintian_desktop)
+from ..version import (BINDIR)
 
 logger = logging.getLogger('game-data-packager.games.scummvm-common')
 
@@ -131,14 +131,7 @@ class ScummvmTask(PackagingTask):
         gameid = package.gameid or self.game.gameid
         if len(package.langs) == 1:
             entry['Exec'] = 'scummvm -p /%s %s' % (package.install_to, gameid)
-            if FORMAT == 'deb':
-                lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-                mkdir_p(lintiandir)
-                with open(os.path.join(lintiandir, package.name),
-                          'a', encoding='utf-8') as o:
-                     o.write('%s: desktop-command-not-in-package '
-                             'usr/share/applications/%s.desktop scummvm\n'
-                             % (package.name, package.name))
+            lintian_desktop(destdir, package.name, 'scummvm')
         else:
             pgm = package.name[0:len(package.name)-len('-data')]
             entry['Exec'] = pgm
diff --git a/game_data_packager/games/z_code.py b/game_data_packager/games/z_code.py
index 28ef788..2c6f501 100644
--- a/game_data_packager/games/z_code.py
+++ b/game_data_packager/games/z_code.py
@@ -22,8 +22,11 @@ import os
 
 from .. import GameData
 from ..build import (PackagingTask)
-from ..util import (TemporaryUmask, PACKAGE_CACHE, mkdir_p)
-from ..version import (BINDIR,FORMAT)
+from ..util import (TemporaryUmask,
+                    PACKAGE_CACHE,
+                    mkdir_p,
+                    lintian_desktop)
+from ..version import (BINDIR)
 
 logger = logging.getLogger('game-data-packager.games.z_code')
 
@@ -80,14 +83,7 @@ class ZCodeTask(PackagingTask):
                       'w', encoding='utf-8') as output:
                  desktop.write(output, space_around_delimiters=False)
 
-            if FORMAT == 'deb':
-                lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-                mkdir_p(lintiandir)
-                with open(os.path.join(lintiandir, package.name),
-                          'a', encoding='utf-8') as o:
-                     o.write('%s: desktop-command-not-in-package '
-                             'usr/share/applications/%s.desktop %s\n'
-                             % (package.name, package.name, engine))
+            lintian_desktop(destdir, package.name, engine)
 
             if engine == 'frotz':
                 bindir = os.path.join(destdir, BINDIR)
diff --git a/game_data_packager/util.py b/game_data_packager/util.py
index a311c73..03f6208 100644
--- a/game_data_packager/util.py
+++ b/game_data_packager/util.py
@@ -216,10 +216,17 @@ def recursive_utime(directory, orig_time):
 
 # loaded at the end to avoid failed cyclic loads
 if FORMAT == 'deb':
-    from .util_deb import (PACKAGE_CACHE, install_packages)
+    from .util_deb import (PACKAGE_CACHE,
+                           install_packages,
+                           lintian_license,
+                           lintian_desktop)
 else:
     from .util_rpm import (PACKAGE_CACHE, install_packages)
+    lintian_license = lambda a,b,c: None
+    lintian_desktop = lambda a,b,c: None
 
 # pyflakes
 PACKAGE_CACHE
 install_packages
+lintian_license
+lintian_desktop
diff --git a/game_data_packager/util_deb.py b/game_data_packager/util_deb.py
index 8da06eb..cd9d766 100644
--- a/game_data_packager/util_deb.py
+++ b/game_data_packager/util_deb.py
@@ -20,7 +20,7 @@ import logging
 import os
 import subprocess
 
-from .util import (run_as_root, check_output)
+from .util import (run_as_root, check_output, mkdir_p)
 from debian.debian_support import Version
 
 logger = logging.getLogger('game-data-packager.util_deb')
@@ -119,3 +119,20 @@ def install_packages(debs, method, gain_root='su'):
     else:
         # gdebi-gtk etc.
         subprocess.call([method] + list(debs))
+
+def lintian_license(destdir, package, file):
+    assert type(package) is str
+    lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
+    mkdir_p(lintiandir)
+    with open(os.path.join(lintiandir, package), 'a', encoding='utf-8') as l:
+        l.write('%s: extra-license-file usr/share/doc/%s/%s\n'
+                % (package, package, file))
+
+def lintian_desktop(destdir, package, program):
+    assert type(package) is str
+    lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
+    mkdir_p(lintiandir)
+    with open(os.path.join(lintiandir, package), 'a', encoding='utf-8') as l:
+        l.write('%s: desktop-command-not-in-package '
+                'usr/share/applications/%s.desktop %s\n'
+                 % (package, package, program))

-- 
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