[game-data-packager] 12/25: packaging: expand variables recursively

Simon McVittie smcv at debian.org
Sun Oct 9 21:26:06 UTC 2016


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

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

commit 63a021d7af520dbc45f9c8be2758b2364b22475d
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Oct 9 14:42:45 2016 +0100

    packaging: expand variables recursively
---
 game_data_packager/packaging/__init__.py | 37 +++++++++++++++++++++-----------
 game_data_packager/packaging/arch.py     |  2 +-
 game_data_packager/packaging/deb.py      |  4 ++--
 3 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/game_data_packager/packaging/__init__.py b/game_data_packager/packaging/__init__.py
index d25557e..09e72a1 100644
--- a/game_data_packager/packaging/__init__.py
+++ b/game_data_packager/packaging/__init__.py
@@ -21,11 +21,18 @@ import importlib
 import os
 import string
 
+class RecursiveExpansionMap(dict):
+    def __getitem__(self, k):
+        v = super(RecursiveExpansionMap, self).__getitem__(k)
+        return string.Template(v).substitute(self)
+
 class PackagingSystem(metaclass=ABCMeta):
-    ASSETS = '/usr/share'
-    BINDIR = '/usr/bin'
-    DOCDIR = '/usr/share/doc'
-    LICENSEDIR = '/usr/share/doc'
+    ASSETS = '$datadir'
+    BINDIR = '$prefix/bin'
+    DATADIR = '$prefix/share'
+    DOCDIR = '$datadir/doc'
+    LICENSEDIR = '$datadir/doc'
+    PREFIX = '/usr'
     CHECK_CMD = None
     INSTALL_CMD = None
 
@@ -138,15 +145,19 @@ class PackagingSystem(metaclass=ABCMeta):
         if '$' not in template:
             return template
 
-        return string.Template(template).substitute(kwargs,
-                assets=self.ASSETS,
-                bindir=self.BINDIR,
-                docdir=self.DOCDIR,
-                licensedir=self.LICENSEDIR,
-                pkgdocdir=self._get_pkgdocdir(package),
-                pkglicensedir=self._get_pkglicensedir(package),
-                prefix=self.PREFIX,
-                )
+        return string.Template(template).substitute(
+                RecursiveExpansionMap(
+                    assets=self.ASSETS,
+                    bindir=self.BINDIR,
+                    datadir=self.DATADIR,
+                    docdir=self.DOCDIR,
+                    licensedir=self.LICENSEDIR,
+                    pkgdocdir=self._get_pkgdocdir(package),
+                    pkglicensedir=self._get_pkglicensedir(package),
+                    prefix=self.PREFIX,
+                    **kwargs))
+
+        return template
 
     def _get_pkgdocdir(self, package):
         return '/'.join((self.DOCDIR, package))
diff --git a/game_data_packager/packaging/arch.py b/game_data_packager/packaging/arch.py
index 702a19b..351aa06 100644
--- a/game_data_packager/packaging/arch.py
+++ b/game_data_packager/packaging/arch.py
@@ -26,7 +26,7 @@ from ..util import (run_as_root, check_output)
 logger = logging.getLogger(__name__)
 
 class ArchPackaging(PackagingSystem):
-    LICENSEDIR = '/usr/share/licenses'
+    LICENSEDIR = '$datadir/licenses'
     CHECK_CMD = 'namcap'
     INSTALL_CMD = ['pacman', '-S']
     PACKAGE_MAP = {
diff --git a/game_data_packager/packaging/deb.py b/game_data_packager/packaging/deb.py
index 184746e..3780895 100644
--- a/game_data_packager/packaging/deb.py
+++ b/game_data_packager/packaging/deb.py
@@ -33,8 +33,8 @@ from ..util import (check_output, mkdir_p, run_as_root)
 logger = logging.getLogger(__name__)
 
 class DebPackaging(PackagingSystem):
-    BINDIR = '/usr/games'
-    ASSETS = '/usr/share/games'
+    BINDIR = '$prefix/games'
+    ASSETS = '$datadir/games'
     CHECK_CMD = 'lintian'
     INSTALL_CMD = ['apt-get', 'install']
     PACKAGE_MAP = {

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